Cómo instalar PostgreSQL 16 en Ubuntu 24.04, 22.04 o 20.04

PostgreSQL 16 marca una actualización importante en el mundo de los sistemas de gestión de bases de datos. Lanzado oficialmente el 14 de septiembre de 2023, PostgreSQL 16 presenta muchas características y mejoras nuevas, fortaleciendo su posición como una solución de base de datos sólida y versátil para usuarios, administradores y desarrolladores.

A continuación se muestran algunas de las características clave más destacadas de PostgreSQL 16:

  • Mejoras de paralelización: PostgreSQL 16 permite la paralelización de uniones hash EXTERNAS internas y COMPLETAS, lo que mejora significativamente el rendimiento de las consultas.
  • Mejoras en la replicación: Introduce la capacidad de replicación lógica desde servidores en espera y permite a los suscriptores aplicar grandes transacciones en paralelo.
  • Capacidades de monitoreo: Agregar la vista pg_stat_io permite un monitoreo más profundo de las estadísticas de E/S.
  • Soporte SQL/JSON: Esta versión presenta constructores SQL/JSON y funciones de identidad, ampliando sus capacidades de manejo de datos.
  • Rendimiento de congelación al vacío: PostgreSQL 16 mejora el rendimiento de la congelación por vacío, lo que ayuda al mantenimiento eficiente de la base de datos.
  • Coincidencia de expresiones regulares: La coincidencia de expresiones regulares para nombres de usuarios y bases de datos en pg_hba.conf y nombres de usuarios en pg_ident.conf mejora la seguridad y la flexibilidad.

Ahora, pasemos al procedimiento técnico y profundicemos en el proceso de instalación de PostgreSQL 16.

Requisitos previos para instalar PostgreSQL 16

Para instalar PostgreSQL 16 con éxito en Ubuntu, asegúrese de cumplir con los siguientes requisitos:

Hardware recomendado y versiones de Ubuntu compatibles

ComponenteRequisito
ProcesadorProcesador compatible de 1 gigahercio (GHz) o más rápido
RAM2 GB o más
Espacio del disco512 MB de HDD (se requiere espacio adicional en disco para datos o componentes de soporte)
Versiones compatiblesUbuntu 24.04 (noble), Ubuntu 22.04 (Jammy), Ubuntu 20.04 (focal)

Requerimientos adicionales

RequisitoDescripción
Conexión a InternetRequerido para descargar PostgreSQL 16 y futuras actualizaciones.
Convenciones terminalesTodos los comandos de terminal deben ejecutarse como un usuario normal con sudo privilegios.
Comandos CLIUtilice la interfaz de línea de comandos (CLI) para la instalación y configuración.

Importar repositorio APT de PostgreSQL

Actualice Ubuntu antes de la instalación de PostgreSQL 16

Comience asegurándose de que su sistema Ubuntu esté actualizado. Este paso es crucial para mantener la estabilidad y compatibilidad del sistema:

sudo apt update

A continuación, actualice los paquetes que estén desactualizados:

sudo apt upgrade

Instalar paquetes iniciales para PostgreSQL 16

Para ayudar a instalar el software de la base de datos, instale los siguientes paquetes:

sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y

Agregar el repositorio APT de PostgreSQL 16

Primero, importe la clave GPG de PostgreSQL. Se trata de garantizar que los paquetes que está a punto de instalar sean genuinos y no estén alterados:

curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null

Elegir el repositorio PostgreSQL 16 adecuado

Ahora es el momento de seleccionar el repositorio de PostgreSQL 16 adecuado para sus necesidades.

Repositorio estable para producción/uso general

El repositorio estable es la opción preferida para la mayoría de los usuarios, especialmente en un entorno de producción. Se actualiza periódicamente con versiones estables y seguras:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list

Repositorios de instantáneas o pruebas para desarrolladores

Considere los repositorios de instantáneas o de prueba si se encuentra en la fase de desarrollo o prueba. Sin embargo, recuerde que estos no son para uso en producción debido a su naturaleza menos estable.

Repositorio de instantáneas para pruebas de vanguardia

Obtenga las últimas instantáneas aquí:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
Repositorio de prueba para las funciones más recientes

Para probar las funciones más nuevas, este comando lo configurará:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list

Instale PostgreSQL 16 mediante comandos de terminal

Actualizar la lista de fuentes del índice del paquete APT

Después de agregar el repositorio PostgreSQL estable o de prueba, es importante actualizar la lista de fuentes del repositorio. Esta acción garantiza que su sistema reconozca el repositorio PostgreSQL recién agregado:

sudo apt update

Instale PostgreSQL 16 mediante el comando APT

Ahora, pasemos a la instalación de PostgreSQL 16. Este comando instala tanto el cliente como el servidor PostgreSQL:

sudo apt install postgresql-client-16 postgresql-16

Verificación de la instalación de PostgreSQL

Una vez que se completa la instalación, es fundamental confirmar que PostgreSQL esté instalado y ejecutándose correctamente. Este comando verifica el estado del servicio PostgreSQL:

systemctl status postgresql

Activando PostgreSQL 16

Si PostgreSQL no está activo, use este comando para iniciar el servicio PostgreSQL. Esto también garantiza que PostgreSQL se inicie automáticamente con su sistema:

sudo systemctl enable postgresql --now

Gestión del servicio PostgreSQL 16

Detener el servidor PostgreSQL 16

Para detener el servicio PostgreSQL temporalmente, tal vez por mantenimiento o cambios de configuración, use este comando:

sudo systemctl stop postgresql

Iniciando el servidor PostgreSQL 16

Cuando esté listo para iniciar el servicio PostgreSQL, especialmente después de una detención o instalación inicial, este comando resulta útil:

sudo systemctl start postgresql

Reiniciar el servidor PostgreSQL 16

En escenarios en los que ha cambiado configuraciones o actualizaciones, a menudo es necesario reiniciar. Este comando reinicia el servicio PostgreSQL y aplica cualquier cambio nuevo:

sudo systemctl restart postgresql

Recargar el servidor PostgreSQL 16

Para recargar el servicio PostgreSQL sin interrumpir su funcionamiento, utilice este comando. Es útil cuando necesitas aplicar cambios de configuración menores:

sudo systemctl reload postgresql

Comprobando el estado de PostgreSQL 16

Para verificar el estado operativo del servicio PostgreSQL, incluido si está activo y ejecutándose sin problemas, use:

systemctl status postgresql

Habilitar PostgreSQL 16 al iniciar el sistema

Si PostgreSQL no está configurado para iniciarse automáticamente, este comando lo habilitará, asegurando que esté activo inmediatamente y en arranques posteriores del sistema:

sudo systemctl enable postgresql --now

Comandos de ejemplo básicos con PostgreSQL 16

Accediendo a la cuenta de usuario de Postgres

En PostgreSQL, el usuario 'postgres' es una función de superusuario predeterminada. Esta cuenta es fundamental para ejecutar comandos administrativos. Para cambiar a esta cuenta, utilice:

sudo -i -u postgres

Una vez en la cuenta, ingrese a la interfaz de línea de comandos de PostgreSQL:

psql

el aviso postgres=# confirma su conexión al entorno PostgreSQL. Para salir, simplemente escriba exit.

Acceso rápido a PostgreSQL sin cambio de usuario

Para operaciones rápidas sin cambiar la cuenta de usuario, acceda directamente a PostgreSQL:

sudo -u postgres psql

Este comando ahorra tiempo en tareas rutinarias. Para salir de esta interfaz, escriba exit.

Crear una nueva función de usuario de PostgreSQL

La flexibilidad de PostgreSQL permite a los superusuarios crear roles de usuario. Para establecer una nueva función de usuario, emita este comando:

sudo su - postgres -c "createuser <username>"

Reemplazar <username> con su nombre de usuario deseado.

Iniciar una nueva base de datos PostgreSQL

Para configurar una nueva base de datos para su usuario:

sudo su - postgres -c "createdb <database_name>"

Reemplazar <database_name> con el nombre previsto para su base de datos.

Asignar privilegios de usuario a una base de datos

Asigne de forma segura el acceso a la base de datos:

sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;

Sustituto <database_name> y <username> según sea necesario. Concluya escribiendo exit.

Configurar el cortafuegos UFW para PostgreSQL 16

Instalación y activación del firewall UFW

Asegúrese de que el UFW (Firewall sin complicaciones) esté instalado y activado en su sistema. UFW simplifica la administración del firewall y es esencial para proteger el tráfico de la red:

sudo apt install ufw
sudo ufw enable

Configuración de reglas UFW para PostgreSQL 16

PostgreSQL se comunica en el puerto 5432 de forma predeterminada. Es necesario configurar UFW para permitir el tráfico en este puerto, especialmente cuando se conecta desde ubicaciones remotas.

Permitir el acceso a la subred

Para permitir el acceso a un rango de direcciones IP dentro de una subred, use este comando:

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

Reemplazar 192.168.1.0/24 con su rango de subred específico.

Permitir el acceso IP individual

Para otorgar acceso a PostgreSQL desde una única dirección IP, use:

sudo ufw allow proto tcp from 192.168.1.0 to any port 5432

Modificar 192.168.1.0 a la dirección IP que desea permitir.

Estos son sólo ejemplos básicos. Debería considerar bloquear cualquier base de datos pública tanto como sea posible a largo plazo.

Configurar PostgreSQL 16

Habilite el acceso remoto en PostgreSQL 16

Configurar PostgreSQL para aceptar conexiones remotas implica ajustar la dirección de escucha desde la interfaz local predeterminada.

Modificación de la configuración para acceso remoto

Accede al archivo de configuración de PostgreSQL:

sudo nano /etc/postgresql/16/main/postgresql.conf

En la sección "Configuración de conexión", cambie listen_addresses = 'localhost' a sus necesidades específicas:

  • Reemplace 'localhost' con la dirección IP deseada para una única IP.
  • Para permitir conexiones en todas las interfaces, utilice listen_addresses = '*'.

Después de realizar cambios, guarde con CTRL+O y salga con CTRL+X. Luego, reinicie PostgreSQL:

sudo systemctl restart postgresql

Verifique los cambios con:

ss -nlt | grep 5432

En el resultado, debería ver el puerto 5432 activo.

Configuración de pg_hba.conf para seguridad mejorada

Editar el pg_hba.conf archivo para un control de acceso optimizado:

sudo nano /etc/postgresql/16/main/pg_hba.conf

Personalización del acceso de usuarios y bases de datos

En pg_hba.conf, puede especificar qué usuarios y bases de datos pueden conectarse y desde qué direcciones. A continuación se muestran algunas configuraciones comunes:

  • Acceso específico del usuario: Reemplace 'todos' con un nombre de usuario específico para restringir el acceso solo a ese usuario.
  • Acceso específico a la base de datos: Especifique una base de datos particular en lugar de permitir el acceso a todas las bases de datos.
  • Restricciones de dirección: Defina direcciones o rangos de IP específicos (p. ej., 192.168.1.0/24) para limitar dónde se pueden originar las conexiones.

Elegir métodos de autenticación

PostgreSQL admite varios métodos de autenticación:

  • MD5: Requiere una contraseña y la cifra con MD5.
  • Contraseña: Utiliza contraseñas de texto sin formato (menos seguras, no recomendadas para producción).
  • Par: Depende de la identidad del usuario a nivel del sistema operativo (común para conexiones locales).
  • Identidad: Similar a "peer", normalmente utilizado para conexiones de red.
  • SCRAM-SHA-256: Un método más seguro, recomendado en lugar de MD5 o contraseña.

Ajuste del rendimiento en postgresql.conf

Para optimizar el rendimiento, considere estas configuraciones en postgresql.conf:

  • buffers_compartidos: ajusta la cantidad de memoria que utiliza PostgreSQL para los buffers de memoria compartida.
  • memoria_trabajo: establece la memoria utilizada para las operaciones internas de clasificación y hash.
  • conexiones_max: Controla el número máximo de conexiones simultáneas a la base de datos.

Monitoreo y Diagnóstico

Habilite el registro detallado para obtener información sobre el rendimiento y los problemas de la base de datos:

  • declaración_log: Establezca en 'todos' para registrar cada declaración SQL ejecutada.
  • duración_log: cuando está habilitado, registra la duración de cada declaración SQL completa.

Conclusión

Acabamos de recorrer una guía completa para configurar PostgreSQL 16 en Ubuntu, que cubre todo, desde la instalación y configuración del acceso remoto hasta reforzar la seguridad con reglas de firewall. Recuerde, si bien es fantástico tener PostgreSQL en funcionamiento, la verdadera clave reside en el mantenimiento regular y los controles de seguridad.

Enlaces útiles

Aquí hay algunos enlaces útiles relacionados con la instalación de PostgreSQL 16 en Ubuntu Linux:

  • Notas de la versión de PostgreSQL 16: Lea las notas de la versión de PostgreSQL 16 para conocer nuevas funciones, mejoras y correcciones de errores.
  • Repositorio PostgreSQL GitHub: Visite el repositorio oficial de PostgreSQL GitHub para acceder al código fuente, informar problemas y contribuir al desarrollo.
  • Documentación de PostgreSQL: acceda a la documentación completa de PostgreSQL para obtener guías detalladas de instalación, configuración y uso.
  • Comunidad PostgreSQL: Únase a la comunidad PostgreSQL para conectarse con otros usuarios, participar en debates y obtener soporte.
Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

Deja un comentario