Clúster de base de datos en PostgreSQL

Bilal Shahid 20 junio 2023
  1. ¿Qué es un clúster de base de datos?
  2. Ventajas de un clúster de base de datos
  3. ¿Cómo funciona un clúster de base de datos en PostgreSQL?
  4. Conclusión
Clúster de base de datos en PostgreSQL

Este artículo describe un clúster de base de datos y cómo crear uno en PostgreSQL. A menudo, las personas confunden este término y no pueden comprender su concepto.

Este artículo está formulado para ampliar el concepto de un clúster de base de datos.

Los comandos para crear y configurar un clúster de base de datos se incluyen en este artículo para ayudarlo a comenzar de inmediato. Siga exactamente los comandos mencionados en el artículo.

Nota: Los comandos mencionados en el artículo han sido probados en Ubuntu y es posible que no funcionen correctamente en ningún otro sistema operativo.

¿Qué es un clúster de base de datos?

Entendamos el término “clúster de base de datos” en términos simples. Varios servidores o instancias que se conectan a una sola base de datos se denominan agrupación de bases de datos.

Nota: Una instancia es un grupo que contiene archivos físicos para almacenar los datos. Se puede definir como un conjunto de memoria y procesos que interactúan con una base de datos.

En otras palabras, un clúster de base de datos se puede definir como un grupo de varias bases de datos administradas por una sola instancia de un servidor de base de datos en ejecución.

Cada clúster de base de datos tiene una configuración separada y opera en un número de puerto diferente. Por ejemplo, puede tener un clúster de base de datos que use PostgreSQL v9.4 y tenga tres bases de datos asociadas.

Todas las bases de datos del clúster usarían la misma configuración proporcionada por el clúster, por ejemplo, el tamaño del grupo de conexiones, el tamaño del búfer, la cantidad de conexiones permitidas, etc.

De manera similar, muchos otros clústeres operan con una versión diferente de PostgreSQL y tienen configuraciones diferentes.

Ventajas de un clúster de base de datos

Hay varias ventajas de la agrupación de bases de datos. Algunas de las principales ventajas se enumeran a continuación.

  1. Equilibrio de carga o escalabilidad de la base de datos
  2. Mayor disponibilidad de la base de datos
  3. Redundancia de datos que permite la copia de seguridad de datos
  4. Seguimiento y automatización de la base de datos

¿Cómo funciona un clúster de base de datos en PostgreSQL?

Para comenzar con el proceso de creación de un clúster en PostgreSQL, debe inicializar un área de almacenamiento para la base de datos en el disco.

Después de la inicialización, se establecería una base de datos llamada postgres en el clúster, que actúa como una base de datos predeterminada utilizada por aplicaciones, usuarios y utilidades de terceros.

Además de la base de datos predeterminada, se crea otra base de datos dentro de cada clúster con el nombre template1. Esta base de datos no se utiliza para el trabajo real; en su lugar, se utiliza como plantilla para bases de datos creadas posteriormente en el clúster.

Un clúster de base de datos actúa como un directorio único para almacenar todos los datos, conocido como el directorio de datos o el área de datos.

Crear o inicializar el clúster de base de datos

Puede inicializar el clúster de base de datos en cualquier ubicación de su elección utilizando los siguientes comandos.

$	initdb -D /usr/local/pgsql/data

Nota: El comando debe ejecutarse después de iniciar sesión en la cuenta de usuario de PostgreSQL.

El segundo comando también ayuda a crear (inicializar) un clúster de base de datos.

$	pg_ctl -D /usr/local/pgsql/data initdb

Ambos comandos crean un directorio en la ubicación deseada.

Número de clústeres de bases de datos activas

Después de crear un clúster, es posible que desee contar la cantidad activa de clústeres en su sistema operativo. Para este asunto, puede usar el siguiente comando.

$ pg_lsclusters

El comando devuelve una lista de clústeres activos, su estado, números de puerto, nombres, ubicaciones de directorios, etc. El comando también informa si cada clúster está activo o fuera de línea.

Esta es una información esencial requerida cuando se conecta a un clúster. Solo puede conectarse a clústeres activos en lugar de fuera de línea.

Conectarse a otro clúster de base de datos

Es posible que sienta la necesidad de conectarse a un clúster de base de datos diferente para equilibrar la carga en un servidor de base de datos o para mejorar el rendimiento del servidor de base de datos existente.

Cualquiera que sea el motivo para conectar los clústeres, puede usar el siguiente comando.

$ psql -U postgres -p 5436-h localhost

Es fundamental utilizar el número de puerto correcto para el clúster al que se está conectando porque cada clúster tiene un número de puerto diferente en el que está disponible.

Nota: Puede verificar el número de puerto de cada clúster usando el comando pg_lsclusters que devuelve la lista de clústeres activos junto con su información.

Editar el estado del clúster de la base de datos

Si desea editar el estado del clúster de la base de datos de principio a fin, o viceversa, puede ejecutar el siguiente comando.

$  pg_ctlcluster 12 main stop

El comando le permite iniciar o detener un clúster de base de datos. En el comando, 12 es el número de versión del software PostgreSQL y main es el nombre del clúster que edita.

Creación de base de datos en un clúster

Puede crear nuevas bases de datos en clústeres existentes con la ayuda de un solo comando. Sin embargo, asegurarse de que el clúster esté activo es esencial porque debe conectarse a él antes de crear una nueva base de datos dentro de él.

Nota: utilice el comando mencionado anteriormente, pg_lsclusters, para comprobar si el clúster en el que desea crear una base de datos está activo o no.

Una vez que esté seguro de que el clúster está activo, use el siguiente comando.

$ CREATE DATABASE mynewdb

El comando crea una nueva base de datos dentro del clúster con el que se conecta.

Conclusión

Todos los comandos necesarios para crear y ejecutar un clúster de base de datos en PostgreSQL se han mencionado en el artículo con una explicación detallada. Seguir la discusión en el artículo lo ayudaría a ejecutar el proceso más rápidamente.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub