Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Рубрики
Linux Администрация

Как управлять базами данных в PostgreSQL: полное руководство для пользователей Linux VPS

PostgreSQL (обычно называется Postgres) — одна из самых мощных, полнофункциональных систем управления реляционными базами данных с открытым исходным кодом, доступных сегодня. Пользуясь доверием как стартапов, так и корпоративных команд, она отлично справляется с обработкой сложных запросов, больших наборов данных и масштабируемых архитектур приложений. Независимо от того, создаёте ли вы платформу SaaS, интернет-магазин или API-бэкенд с интенсивной обработкой данных, PostgreSQL обеспечивает надёжность и производительность, которые требует ваш проект.

Запуск PostgreSQL в высокопроизводительной среде VPS Hosting — с хранилищем NVMe SSD, полным доступом root и встроенной защитой от DDoS — даёт вам полный контроль над инфраструктурой вашей базы данных без затрат на управляемые облачные решения. Это руководство проведёт вас через все необходимые задачи управления PostgreSQL, от начального доступа и создания базы данных до разрешений пользователей, резервных копий и усиления безопасности.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Linux VPS с Ubuntu, Debian или CentOS и установленным PostgreSQL
  • Доступ root или sudo к вашему серверу
  • Базовое знакомство с командной строкой Linux

Если вы еще не настроили среду вашего сервера, VPS Control Panels AlexHost позволяют быстро настроить ваш стек.

1. Доступ к интерфейсу командной строки PostgreSQL

Все задачи управления PostgreSQL начинаются с интерфейса командной строки (CLI), также известного как psql. По умолчанию PostgreSQL создает системного пользователя postgres во время установки, и эта учетная запись используется для аутентификации в механизме базы данных.

Шаг 1: Переключитесь на системного пользователя PostgreSQL

sudo -i -u postgres

Шаг 2: Запустите CLI PostgreSQL

psql

После подключения вы увидите интерактивное приглашение:

postgres=#

Это подтверждает, что вы находитесь в среде PostgreSQL и готовы выполнять SQL команды и мета-команды.

> Совет профессионала: Вы также можете подключиться напрямую без переключения пользователей, запустив sudo -u postgres psql из вашего обычного сеанса оболочки.

2. Создание новой базы данных

Базы данных — это контейнеры верхнего уровня для всех ваших таблиц, индексов и сохраненных данных. Используйте CREATE DATABASE для создания новой базы данных.

Синтаксис

CREATE DATABASE database_name;

Пример

CREATE DATABASE my_database;

Это создает базу данных с именем my_database принадлежащую текущей активной роли PostgreSQL.

Проверка создания базы данных

Используйте мета-команду l для отображения всех баз данных на сервере:

l

Вы увидите таблицу с названиями баз данных, владельцами, кодировками и привилегиями доступа.

3. Создание и управление пользователями базы данных

Надлежащее управление пользователями критически важно для безопасности базы данных. Вместо предоставления всем приложениям доступа под учетной записью postgres суперпользователя, вы должны создать выделенных пользователей с ограниченными разрешениями.

Создание нового пользователя

CREATE USER username WITH PASSWORD 'your_secure_password';

Пример

CREATE USER dbuser WITH PASSWORD 'StrongP@ssword123';

Предоставление полного доступа к определенной базе данных

GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

Пример

GRANT ALL PRIVILEGES ON DATABASE my_database TO dbuser;

Это предоставляет dbuser полный доступ на чтение и запись к my_database, включая возможность создания и удаления таблиц.

Список всех пользователей

Для просмотра всех существующих ролей и пользователей:

du

4. Подключение к базе данных

После создания базы данных необходимо подключиться к ней, прежде чем создавать таблицы или выполнять запросы к ней.

Переключение на базу данных

c my_database

Приглашение будет обновлено, чтобы отразить активную базу данных:

my_database=#

Теперь вы работаете в my_database и можете выполнять все операции DDL и DML против неё.

5. Создание и управление таблицами

Таблицы являются основной структурной единицей любой реляционной базы данных. Каждая таблица определяет схему — набор именованных столбцов с определенными типами данных и ограничениями.

Создание таблицы

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

Практический пример: таблица записей сотрудников

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

Здесь SERIAL автоматически увеличивает employee_id для каждой новой строки, а NOT NULL гарантирует, что каждый сотрудник должен иметь имя.

6. Вставка, запрос, обновление и удаление данных

Вставить запись

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

Запросить все записи

SELECT * FROM employees;

Фильтрация результатов с помощью предложения WHERE

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

Обновить существующую запись

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

Удалить конкретную запись

DELETE FROM employees
WHERE name = 'Jane Smith';

> Лучшая практика: Всегда используйте предложение WHERE с операторами UPDATE и DELETE. Его пропуск повлияет на каждую строку в таблице.

7. Управление доступом к базе данных и безопасность

Безопасность — это первостепенная задача в любом production развертывании PostgreSQL. Принцип наименьших привилегий — предоставление пользователям только необходимых им разрешений — значительно снижает вашу поверхность атаки.

Отозвать все привилегии у пользователя

REVOKE ALL PRIVILEGES ON DATABASE my_database FROM dbuser;

Предоставить доступ только для чтения к определенной таблице

GRANT SELECT ON TABLE employees TO dbuser;

Это позволяет dbuser запрашивать таблицу employees, но предотвращает любые вставки, обновления или удаления.

Предоставить специфические разрешения DML

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

Дополнительные рекомендации по безопасности

  • Используйте надежные, уникальные пароли для каждого пользователя базы данных
  • Отключите удаленный доступ для суперпользователя postgres в pg_hba.conf
  • Включите SSL соединения для шифрования данных при передаче — сочетайте это с доверенным SSL сертификатом на вашем сервере
  • Регулярно проверяйте привилегии пользователей используя du и dp
  • Держите PostgreSQL в актуальном состоянии для исправления известных уязвимостей

8. Резервное копирование и восстановление баз данных

Регулярное резервное копирование является обязательным для любой производственной базы данных. PostgreSQL предоставляет утилиты pg_dump и psql для простых рабочих процессов резервного копирования и восстановления.

Резервное копирование базы данных в SQL файл

pg_dump my_database > my_database_backup.sql

Это экспортирует всю схему базы данных и данные как простой текстовый SQL скрипт.

Резервное копирование в сжатом формате (рекомендуется для больших баз данных)

pg_dump -Fc my_database > my_database_backup.dump

Пользовательский формат (-Fc) создает сжатый двоичный файл и поддерживает параллельное восстановление.

Восстановление базы данных из SQL резервной копии

psql my_database < my_database_backup.sql

Восстановление из резервной копии в пользовательском формате

pg_restore -d my_database my_database_backup.dump

Автоматизация резервного копирования с помощью задачи Cron

Запланируйте ежедневное резервное копирование, добавив запись cron:

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

Это запускает резервное копирование каждый день в 2:00 AM и добавляет дату к имени файла для удобного управления версиями.

9. Удаление таблиц и баз данных

Когда таблица или база данных больше не требуется, используйте команду DROP для её постоянного удаления.

Удаление таблицы

DROP TABLE table_name;

Пример

DROP TABLE employees;

Удаление таблицы только если она существует (более безопасный синтаксис)

DROP TABLE IF EXISTS employees;

Удаление базы данных

Перед удалением целевой базы данных необходимо отключиться от неё. Сначала переключитесь на базу данных по умолчанию postgres:

c postgres

Затем удалите целевую базу:

DROP DATABASE my_database;

> Предупреждение: DROP DATABASE необратимо. Всегда проверяйте наличие актуальной резервной копии перед выполнением этой команды в production.

10. Справочник полезных мета-команд PostgreSQL

CLI psql включает богатый набор мета-команд (с префиксом ), которые упрощают навигацию и проверку:

КомандаОписание
lСписок всех баз данных
c dbnameПодключиться к базе данных
dtСписок всех таблиц в текущей базе данных
d table_nameОписать схему таблицы
duСписок всех пользователей и ролей
dpПоказать привилегии доступа к таблице
timingПереключить отображение времени выполнения запроса
qВыход из CLI PostgreSQL

11. Выход из PostgreSQL CLI

Когда вы закончите сеанс, выйдите чистым способом, используя:

q

Это вернет вас к приглашению оболочки Linux.

Почему запускать PostgreSQL на VPS AlexHost?

Производительность и контроль — две главные причины для самостоятельного размещения PostgreSQL на выделенном VPS вместо использования общей или управляемой службы базы данных. С инфраструктурой AlexHost вы получаете:

  • NVMe SSD хранилище для ультра-быстрых операций чтения/записи на больших наборах данных
  • Полный root доступ для настройки PostgreSQL в точности в соответствии с требованиями вашего приложения
  • DDoS защиту для обеспечения доступности сервера базы данных в неблагоприятных сетевых условиях
  • Масштабируемые ресурсы — увеличивайте CPU, RAM и хранилище по мере роста ваших данных

Для команд, управляющих несколькими приложениями или проектами клиентов, Выделенные серверы предлагают еще большую изоляцию, чистую производительность и предсказуемую задержку для рабочих нагрузок, требующих интенсивной работы с базами данных.

Если вы размещаете веб-приложения вместе с вашими базами данных PostgreSQL, сочетание вашего VPS с Общим веб-хостингом для статических ресурсов или доставки фронтенда может дополнительно оптимизировать вашу архитектуру и снизить затраты.

Заключение

Овладение управлением базой данных PostgreSQL на Linux VPS дает вам полный контроль над инфраструктурой данных — от проектирования схемы и разрешений пользователей до автоматизированных резервных копий и усиления безопасности. Команды и рабочие процессы, описанные в этом руководстве, представляют основной набор навыков, который необходим каждому разработчику и системному администратору для уверенной работы с PostgreSQL в production.

Краткая справка:

  • Используйте CREATE DATABASE и CREATE USER для подготовки новых ресурсов
  • Применяйте принцип наименьших привилегий с GRANT и REVOKE
  • Всегда создавайте резервные копии с pg_dump перед выполнением деструктивных операций
  • Используйте l, dt и du для быстрой проверки вашей среды
  • Планируйте автоматизированные резервные копии через cron для защиты от потери данных

Готовы применить эти навыки на практике? Запустите полностью управляемую среду Linux на плане AlexHost VPS Hosting и возьмите полный контроль над развертыванием PostgreSQL уже сегодня.