Ahorre 15% en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código: Skills Comenzar
Secciones
Administración Linux

Cómo Administrar Bases de Datos en PostgreSQL: Una Guía Completa para Usuarios de Linux VPS

PostgreSQL (comúnmente llamado Postgres) es uno de los sistemas de gestión de bases de datos relacionales de código abierto más potentes y ricos en características disponibles hoy en día. Confiado por equipos de startups y empresas por igual, destaca en el manejo de consultas complejas, grandes conjuntos de datos y arquitecturas de aplicaciones escalables. Ya sea que estés construyendo una plataforma SaaS, una tienda de comercio electrónico o un backend de API intensivo en datos, PostgreSQL ofrece la confiabilidad y el rendimiento que tu proyecto requiere.

Ejecutar PostgreSQL en un entorno de Alojamiento VPS de alto rendimiento — con almacenamiento NVMe SSD, acceso root completo y protección DDoS integrada — te da control total sobre tu infraestructura de base de datos sin la sobrecarga de soluciones en la nube administradas. Esta guía te acompaña a través de cada tarea esencial de gestión de PostgreSQL, desde el acceso inicial y la creación de bases de datos hasta los permisos de usuario, copias de seguridad y endurecimiento de seguridad.

Requisitos previos

Antes de continuar, asegúrate de tener:

  • Un Linux VPS ejecutando Ubuntu, Debian, o CentOS con PostgreSQL instalado
  • Acceso root o sudo a tu servidor
  • Familiaridad básica con la línea de comandos de Linux

Si aún no has configurado tu entorno de servidor, los Paneles de Control VPS de AlexHost hacen que sea sencillo configurar tu stack rápidamente.

1. Acceso a la interfaz de línea de comandos de PostgreSQL

Todas las tareas de gestión de PostgreSQL comienzan en la interfaz de línea de comandos (CLI), también conocida como psql. Por defecto, PostgreSQL crea un usuario del sistema llamado postgres durante la instalación, y esta cuenta se utiliza para autenticarse con el motor de base de datos.

Paso 1: Cambiar al usuario del sistema PostgreSQL

sudo -i -u postgres

Paso 2: Iniciar la CLI de PostgreSQL

psql

Una vez conectado, verá el indicador interactivo:

postgres=#

Esto confirma que está dentro del entorno PostgreSQL y listo para ejecutar comandos SQL y meta-comandos.

> Consejo profesional: También puede conectarse directamente sin cambiar de usuario ejecutando sudo -u postgres psql desde su sesión de shell regular.

2. Creación de una nueva base de datos

Las bases de datos son contenedores de nivel superior para todas tus tablas, índices y datos almacenados. Utiliza la declaración CREATE DATABASE para aprovisionar una nueva base de datos.

Sintaxis

CREATE DATABASE database_name;

Ejemplo

CREATE DATABASE my_database;

Esto crea una base de datos llamada my_database propiedad del rol PostgreSQL actualmente activo.

Verificar que la base de datos fue creada

Utiliza el meta-comando l para listar todas las bases de datos en el servidor:

l

Verás una tabla que muestra nombres de bases de datos, propietarios, codificaciones y privilegios de acceso.

3. Creación y Gestión de Usuarios de Base de Datos

La gestión adecuada de usuarios es crítica para la seguridad de la base de datos. En lugar de otorgar acceso a todas las aplicaciones bajo la cuenta postgres de superusuario, debe crear usuarios dedicados con permisos limitados.

Crear un Nuevo Usuario

CREATE USER username WITH PASSWORD 'your_secure_password';

Ejemplo

CREATE USER dbuser WITH PASSWORD 'StrongP@ssword123';

Otorgar Acceso Completo a una Base de Datos Específica

GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

Ejemplo

GRANT ALL PRIVILEGES ON DATABASE my_database TO dbuser;

Esto otorga a dbuser acceso completo de lectura y escritura a my_database, incluida la capacidad de crear y eliminar tablas.

Listar Todos los Usuarios

Para ver todos los roles y usuarios existentes:

du

4. Conectarse a una Base de Datos

Una vez que existe una base de datos, necesitas conectarte a ella antes de poder crear tablas o ejecutar consultas contra ella.

Cambiar a una Base de Datos

c my_database

El símbolo del sistema se actualizará para reflejar la base de datos activa:

my_database=#

Ahora estás operando dentro de my_database y puedes ejecutar todas las sentencias DDL y DML contra ella.

5. Creación y Gestión de Tablas

Las tablas son la unidad estructural central de cualquier base de datos relacional. Cada tabla define un esquema — un conjunto de columnas nombradas con tipos de datos específicos y restricciones.

Crear una Tabla

CREATE TABLE table_name (
    column1 data_type PRIMARY KEY,
    column2 data_type,
    column3 data_type
);

Ejemplo Práctico: Tabla de Registros de Empleados

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    department  VARCHAR(50),
    salary      NUMERIC(10, 2)
);

Aquí, SERIAL incrementa automáticamente el employee_id en cada fila nueva, y NOT NULL asegura que cada empleado debe tener un nombre.

6. Insertar, Consultar, Actualizar y Eliminar Datos

Insertar un Registro

INSERT INTO employees (name, department, salary)
VALUES ('Jane Smith', 'Engineering', 72000);

Consultar Todos los Registros

SELECT * FROM employees;

Filtrar Resultados con una Cláusula WHERE

SELECT name, salary FROM employees WHERE department = 'Engineering';

Actualizar un Registro Existente

UPDATE employees
SET salary = 78000
WHERE name = 'Jane Smith';

Eliminar un Registro Específico

DELETE FROM employees
WHERE name = 'Jane Smith';

> Buena Práctica: Siempre usa una cláusula WHERE con las sentencias UPDATE y DELETE. Omitirla afectará cada fila en la tabla.

7. Gestión del acceso a bases de datos y seguridad

La seguridad es una preocupación de primera clase en cualquier implementación de PostgreSQL en producción. El principio del menor privilegio — otorgar a los usuarios solo los permisos que realmente necesitan — reduce drásticamente tu superficie de ataque.

Revocar todos los privilegios de un usuario

REVOKE ALL PRIVILEGES ON DATABASE my_database FROM dbuser;

Otorgar acceso de solo lectura a una tabla específica

GRANT SELECT ON TABLE employees TO dbuser;

Esto permite que dbuser consulte la tabla employees pero evita cualquier inserción, actualización o eliminación.

Otorgar permisos DML específicos

GRANT SELECT, INSERT, UPDATE ON TABLE employees TO dbuser;

Recomendaciones de seguridad adicionales

  • Usa contraseñas fuertes y únicas para cada usuario de base de datos
  • Desactiva el acceso remoto para el superusuario postgres en pg_hba.conf
  • Habilita conexiones SSL para encriptar datos en tránsito — combina esto con un Certificado SSL confiable en tu servidor
  • Audita regularmente los privilegios de usuario usando du y dp
  • Mantén PostgreSQL actualizado para parchear vulnerabilidades conocidas

8. Copia de seguridad y restauración de bases de datos

Las copias de seguridad regulares son imprescindibles para cualquier base de datos en producción. PostgreSQL proporciona los utilitarios pg_dump y psql para flujos de trabajo de copia de seguridad y restauración directos.

Hacer copia de seguridad de una base de datos en un archivo SQL

pg_dump my_database > my_database_backup.sql

Esto exporta el esquema de base de datos completo y los datos como un script SQL de texto plano.

Hacer copia de seguridad en formato comprimido (recomendado para bases de datos grandes)

pg_dump -Fc my_database > my_database_backup.dump

El formato personalizado (-Fc) produce un archivo binario comprimido y admite restauración paralela.

Restaurar una base de datos desde una copia de seguridad SQL

psql my_database < my_database_backup.sql

Restaurar desde una copia de seguridad en formato personalizado

pg_restore -d my_database my_database_backup.dump

Automatizar copias de seguridad con un trabajo Cron

Programa copias de seguridad diarias agregando una entrada cron:

crontab -e
0 2 * * * pg_dump my_database > /var/backups/postgres/my_database_$(date +%F).sql

Esto ejecuta una copia de seguridad todos los días a las 2:00 AM y añade la fecha al nombre del archivo para facilitar el control de versiones.

9. Eliminación de Tablas y Bases de Datos

Cuando una tabla o base de datos ya no es necesaria, utiliza el comando DROP para eliminarla permanentemente.

Eliminar una Tabla

DROP TABLE table_name;

Ejemplo

DROP TABLE employees;

Eliminar una Tabla Solo Si Existe (Sintaxis Más Segura)

DROP TABLE IF EXISTS employees;

Eliminar una Base de Datos

Debes desconectarte de la base de datos de destino antes de eliminarla. Primero cambia a la base de datos predeterminada postgres:

c postgres

Luego elimina el destino:

DROP DATABASE my_database;

> Advertencia: DROP DATABASE es irreversible. Siempre verifica que tengas una copia de seguridad actual antes de ejecutar este comando en producción.

10. Referencia útil de meta-comandos de PostgreSQL

El CLI psql incluye un conjunto completo de meta-comandos (prefijados con ) que simplifican la navegación e inspección:

ComandoDescripción
lListar todas las bases de datos
c dbnameConectar a una base de datos
dtListar todas las tablas en la base de datos actual
d table_nameDescribir el esquema de una tabla
duListar todos los usuarios y roles
dpMostrar privilegios de acceso a tablas
timingAlternar la visualización del tiempo de ejecución de consultas
qSalir del CLI de PostgreSQL

11. Saliendo de la CLI de PostgreSQL

Cuando hayas terminado tu sesión, sal limpiamente usando:

q

Esto te devuelve al prompt de shell de Linux.

¿Por qué ejecutar PostgreSQL en un VPS de AlexHost?

El rendimiento y el control son las dos razones más importantes para auto-alojar PostgreSQL en un VPS dedicado en lugar de depender de un servicio de base de datos compartido o administrado. Con la infraestructura de AlexHost, obtienes:

  • Almacenamiento NVMe SSD para operaciones de lectura/escritura ultra rápidas en grandes conjuntos de datos
  • Acceso root completo para configurar PostgreSQL exactamente como lo requiere tu aplicación
  • Protección DDoS para mantener tu servidor de base de datos disponible en condiciones de red adversas
  • Recursos escalables — actualiza tu CPU, RAM y almacenamiento a medida que crecen tus datos

Para equipos que administran múltiples aplicaciones o proyectos de clientes, los Servidores Dedicados ofrecen aún mayor aislamiento, rendimiento bruto y latencia predecible para cargas de trabajo intensivas en bases de datos.

Si estás alojando aplicaciones web junto con tus bases de datos PostgreSQL, emparejar tu VPS con Alojamiento Web Compartido para activos estáticos o entrega de front-end puede optimizar aún más tu arquitectura y reducir costos.

Conclusión

Dominar la gestión de bases de datos PostgreSQL en un VPS Linux te da propiedad total de tu infraestructura de datos — desde el diseño de esquemas y permisos de usuario hasta copias de seguridad automatizadas y endurecimiento de seguridad. Los comandos y flujos de trabajo cubiertos en esta guía representan el conjunto de habilidades principales que todo desarrollador y administrador de sistemas necesita para operar PostgreSQL con confianza en producción.

Resumen de Referencia Rápida:

  • Usa CREATE DATABASE y CREATE USER para aprovisionar nuevos recursos
  • Aplica el principio de menor privilegio con GRANT y REVOKE
  • Siempre haz copias de seguridad con pg_dump antes de hacer cambios destructivos
  • Usa l, dt y du para inspeccionar tu entorno de un vistazo
  • Programa copias de seguridad automatizadas a través de cron para protegerte contra la pérdida de datos

¿Listo para poner estas habilidades en práctica? Inicia un entorno Linux completamente administrado en un plan de VPS Hosting de AlexHost y toma control completo de tu implementación de PostgreSQL hoy.