yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

Установка PostgreSQL в Ubuntu: настройка и работа с базой данных

PostgreSQL — популярная СУБД, с которой работают и небольшие стартапы, и корпорации. В статье расскажем, как установить PostgreSQL в операционной системе Ubuntu, как ее настроить, создать базы данных, таблицы и что понадобится для работы.

Инструкции
Иллюстрация для статьи на тему «Установка PostgreSQL в Ubuntu: настройка и работа с базой данных»
Продукты из этой статьи:
Иконка-Advanced Relational Database Service for PostgreSQL
Advanced Relational Database Service for PostgreSQL
Иконка-Evolution Image
Evolution Image
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®

Что такое PostgreSQL и какие у нее преимущества

PostgreSQL — объектно-реляционная СУБД с открытым исходным кодом. PostgreSQL используют в e-commerce, аналитике, стартапах и везде, где важны производительность и надежность. По информации за 2024 год, PostgreSQL — вторая по популярности в России, ее используют на 97% чаще Oracle и на 118% чаще MySQL.

Какие операционные системы поддерживают PostgreSQLСписок операционных систем, которые поддерживают PostgreSQL
Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

Рассмотрим плюсы PostgreSQL:

Активное сообщество разработчиков, которые выпускают регулярные обновления, закрывают уязвимости, добавляют новые функции.

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

Поддержка разных типов данных: числовых, строковых, логических типов, даты и времени, массивов, геопространственных данных через расширение PostGIS, сетевых адресов. Это дает возможность хранить почти любую информацию в ее естественном виде.

Надежность. PostgreSQL соответствует принципам ACID: атомарность, непротиворечивость, изоляция и устойчивость. Это говорит о том, что СУБД работает стабильно и предсказуемо.

Atomicity, Consistency, Isolation, DurabilityACID (Atomicity, Consistency, Isolation, Durability) — аббревиатура, в которой зашифрованы первые буквы принципов, включенных в стандарт ACID

Гибкость в моделировании больших структур данных. PostgreSQL — объектно-реляционная модель, которая сочетает стабильность реляционных таблиц и возможности объектно-ориентированного подхода. Данные представляются как объекты с атрибутами и методами, сохраняя при этом преимущества работы с таблицами и связями между ними.

Кроссплатформенность. PostgreSQL работает на Linux, Ubuntu, Windows, macOS и других ОС. Еще есть много драйверов для интеграции с приложениями на разных языках программирования (ЯП). Доступны драйверы для популярных ЯП, например: Python, Java, JavaScript, Go, C#, PHP, Ruby. PostgreSQL можно развернуть на собственном железе, виртуальной машине или в облаке.

Работа с большими объемами данных. В СУБД нет ограничений по размеру баз данных, а максимальный размер таблицы — 32 ТБ. PostgreSQL используют в проектах с терабайтами информации.

Открытый исходный код. PostgreSQL — бесплатное open source решение: не нужно платить, даже если в планах использовать решение в коммерческих целях. У вас есть доступ к исходному коду, возможность модифицировать его под свои задачи.

Безопасность. Защита данных реализована комплексно. PostgreSQL поддерживает множество механизмов аутентификации: пароли, Kerberos, LDAP, GSSAPI, SSPI, PAM. Гибкая ролевая модель позволяет тонко настраивать права доступа: от уровня всей базы данных до отдельных таблиц, столбцов и даже строк.

Бесплатные ресурсы в Evolution free tier
Бесплатные ресурсы в Evolution free tier
Предоставляем ежемесячный объем бесплатных ресурсов для запуска виртуальных машин, контейнеров и создания хранилищ. Используйте сервисы Evolution free tier, чтобы хранить файлы, запускать собственных ботов, сайты или менеджеры паролей.
Попробовать

Технические требования PostgreSQL

До установки системы управления базами данных нужно учесть требования к аппаратному и программному обеспечению:

  • ОС: Linux, для Ubuntu лучше использовать версию 20.04.

  • Одноядерный процессор с тактовой частотой 1 ГГц. Но лучше многоядерный процессор от 2 ГГц и выше.

  • Оперативная память от 4 ГБ — для небольших систем, 16 ГБ и более — для высоконагруженных баз данных.

  • Место на диске — от 200 МБ для установки системы и дополнительное пространство, чтобы хранить данные. Хорошо, если это будет SSD-диск с достаточным объемом для хранения данных и журналов транзакций.

Еще потребуется поддержка SQL, пакеты для работы с Python, Perl или Java, если интеграция с ними необходима, и сетевые порты: необходимо открыть порт 5432 для доступа к серверу PostgreSQL.

Как установить PostgreSQL на Ubuntu

Шаг 1. Обновите ОС до актуальной версии. Для этого выполните команды sudo apt update && sudo apt upgrade -y. Обновление нужно, чтобы Ubuntu была совместима с PostgreSQL. Также лучше удалить старые версии СУБД, чтобы не было конфликта при установке.

Шаг 2. Установите PostgreSQL. Ubuntu предоставляет PostgreSQL в своем официальном репозитории. Для установки выполните команду sudo apt install postgresql postgresql-contrib. Пакет postgresql содержит саму систему управления, а postgresql-contrib — дополнительные модули и утилиты, которые расширяют функции PostgreSQL.

После установки проверьте статус командой sudo systemctl status postgresql. Если СУБД не запустилась автоматически, сделайте это вручную: sudo systemctl start postgresql. Потом включите автоматический запуск при старте системы командой sudo systemctl enable postgresql

Шаг 3. Проверьте версию установленной PostgreSQL. Введите команду psql --version. После этого на мониторе покажется актуальная версия: «psql (PostgreSQL) 17.2».

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

Как первично настроить СУБД

Первым делом создайте сам массив данных. Для этого PostgreSQL по умолчанию создает пользователя с именем postgres. Ему даются права администратора, который может управлять БД. Чтобы работать с базой данных под postgres, введите команду sudo -i -u postgres.

Теперь разберемся с конфигурационными файлами PostgreSQL, которые нужны, чтобы управлять параметрами баз данных. Они лежат в каталоге, обычно расположенном в /etc/postgresql/{version}/main/ или /var/lib/postgresql/{version}/main/ — зависит от конфигурации системы.

Основные конфигурационные файлы:

  • postgresql.conf — можно настроить, допустим, порты подключения, размер буферов, регистрацию: sudo nano /etc/postgresql/{version}/main/postgresql.conf.

  • pg_hba.conf — файл для управления доступами к БД. Здесь настраиваются разрешения для подключения пользователей с разными хостами. Можно разрешить доступ только с локального хоста или с определенных IP: sudo nano /etc/postgresql/{version}/main/pg_hba.conf.

  • pg_ident.conf — файл, который объединяет системных пользователей с пользователями PostgreSQL. Это нужно, чтобы управлять доступом и назначать гибкие права на уровне системы включения.

Изменения, которые вносите через конфигурационные файлы, не вступят в силу сами по себе. Перезапустите сервер PostgreSQL командой sudo systemctl restart postgresql.

Как создавать базы данных PostgreSQL на Ubuntu и управлять ими

Разбираемся, какие команды использовать, чтобы инициировать БД, подключиться к ней, настроить доступы и начать работу.

Создание базы данных

Создать базу данных можно двумя способами: с помощью утилиты командной строки psql или инструмента createdb. Рассмотрим каждый.

Как создать БД с помощью psql

  1. переключитесь на пользователя PostgreSQL: sudo -i -u postgres;

  2. войдите в консоль psql: psql;

  3. создайте базу данных: CREATE DATABASE имя_базы_данных;

  4. выйдите из консоли: \q.

Чтобы создать БД с помощью createdb, из консоли Ubuntu от имени пользователя PostgreSQL выполните команду: createdb имя_базы_данных.

Подключение к базе данных с помощью psql

Чтобы подключиться к уже созданной БД, выполните команду: psql -d имя_базы_данных -U postgres. Здесь -d — имя базы, -U — пользователь, который подключается к БД. После подключения можно выполнять SQL-запросы, управлять таблицами и данными.

Команды для удаления БД и настроек доступа

Команда \l или psql -c "\l" покажет базы данных, которые есть. Удалить одну из них можно командой DROP DATABASE имя_базы_данных. Чтобы команда сработала, закройте удаляемую БД.

Настроить права доступа можно по следующему алгоритму:

  • Создать пользователя: CREATE USER имя_пользователя WITH PASSWORD 'пароль'.

  • Назначить роли владельца базы данных: GRANT ALL PRIVILEGES ON DATABASE имя_базы_данных TO имя_пользователя.

  • Изменить роли, например, дать права суперпользователя: ALTER USER имя_пользователя WITH SUPERUSER. Суперпользователь способен управлять базами данных, обычными пользователями и доступами. Этому пользователю доступны те функции, которые закрыты для остальных.

  • Удалить пользователя: DROP USER имя_пользователя.

Как работать с таблицами и данными PostgreSQL на Ubuntu

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

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

Укажите имена столбцов, типы данных, которые будут в столбцах. А еще дополнительные параметры, допустим, уникальность и ограничения:

Как сделать таблицу в PostgreSQL на Ubuntu

Где:

  • id SERIAL PRIMARY KEY отвечает за автоинкрементное поле, у которого есть идентификатор. Автоинкрементное поле — это колонка в БД, значение которой автоматически увеличивается с каждой новой записью. Поле нужно, чтобы автоматически создавать уникальные идентификаторы, а не делать это вручную для каждого нового ряда.

  • name VARCHAR(100) NOT NULL столбец для имени, где NOT NULL запрещает оставлять поле пустым.

  • created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP — столбец для даты создания записи. Если дату не указать, автоматически подставится текущая.

Чтобы проверить, создалась ли таблица, используйте команду \d users.

Добавление, изменение и удаление данных в таблице

Рассмотрим команды, которые нужны для совершения действий в таблице, и покажем примеры:

  • Вставить новую запись в таблицу — INSERT.

Как сделать таблицу в PostgreSQL на Ubuntu: пошаговая инструкция
  • Поменять данные — UPDATE.

Как сделать таблицу в PostgreSQL на Ubuntu пошагово
  • Удалить данные — DELETE. Будьте внимательны, если не указать условие WHERE, будут удалены все строки в таблице.

Создание таблицы в PostgreSQL на Ubuntu пошагово
  • Добавить столбец — ADD COLUMN.

Сделать таблицу в PostgreSQL на Ubuntu
  • Удалить столбец — DROP COLUMN.

Код для таблицы в PostgreSQL на Ubuntu
  • Изменить тип данных столбца, например, увеличить длину поля для имени — ALTER COLUMN.

Как написать код таблицы в PostgreSQL на Ubuntu
  • Удалить таблицу — DROP TABLE. Учтите, что отменить действие нельзя. Если не уверены, существует ли таблица, которую хотите удалить, воспользуйтесь командой DROP TABLE IF EXISTS users.

Резервное копирование и восстановление данных в PostgreSQL на Ubuntu

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

Как создать резервные копии базы данных, или экспорт дампа, чтобы сохранить данные в одном файле. Для резервного копирования используется утилита pg_dump, с ее помощью создают дампы БД в формате SQL или архивном формате.

Команда может выглядеть так: pg_dump -U <пользователь> -F c -d <имя_базы> -f /путь/к/резервной_копии.dump, где:

  • -U <пользователь> — имя пользователя PostgreSQL;

  • -F c — формат дампы, в примере он архивный;

  • -d <имя_базы> — название БД, которую резервируем;

  • -f /путь/к/резервной_копии.dump — путь, где сохранится копия.

Как восстановить данные, если произошел сбой . Здесь нужна утилита pg_restore, с ее помощью импортируют данные из дампа. 

Пример команды: pg_restore -U <пользователь> -d <имя_новой_базы> -1 /путь/к/резервной_копии.dump, где:

  • -U <пользователь> — имя пользователя PostgreSQL;

  • -d <имя_новой_базы> — имя БД, куда будет загружена информация;

  • -1 — выполнение дампа одной транзакцией для предотвращения частичного повреждения;

  • /путь/к/резервной_копии.dump — путь к файлу резервной копии.

Перед восстановлением убедитесь, что нужная БД создана и доступна. Чтобы заменить существующую базу, сначала удалите старую, а после создайте новую с тем же названием.

Evolution AI Factory — цифровая среда для работы с генеративным AI
Evolution AI Factory — цифровая среда для работы с генеративным AI
Собрали в Evolution AI Factory шесть сервисов, чтобы выполнять разные задачи с помощью GenAI. Создавайте мультиагентные системы, развертывайте ML- и DL-модели, обогащайте модели вашими собственными данными и точечно настраивайте LLM под ваши задачи.
Попробовать

Настройка удаленного доступа к PostgreSQL на Ubuntu

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

Включение внешнего доступа и безопасных соединений

  1. Откройте конфигурацию файла postgresql.conf и измените параметр значения listen_addresses. Так сервер сможет принимать запросы на указанных IP-адресах или на всех интерфейсах listen_addresses = '*'.

  2. Затем настройте файл pg_hba.conf, он лежит по пути /etc/postgresql/<версия>/main/pg_hba.conf. Добавьте строки Управляющие подключения с нужными IP-адресами, например, host all all 192.168.1.0/24 md5.

  3. Активируйте SSL, чтобы шифровать трафик между клиентом и сервером. Включите параметр SSL в postgresql.conf командой ssl = on.

  4. Убедитесь, что на сервере установлены SSL-сертификаты. Сертификат сервера server.crt и закрытый ключ server.key находятся в каталоге /etc/postgresql/<версия>/main/. Право доступа к ключу проверьте командой sudo chmod 600 /etc/postgresql/<версия>/main/server.key.

  5. Убедитесь, что для пользователей установлены надежные пароли. Для этого выполните команду: ALTER USER <username> WITH PASSWORD '<secure_password>'.

Открытие порта и настройка брандмауэра для доступа

По умолчанию PostgreSQL для подключения использует порт 5432. Чтобы сервер был доступен:

  1. Замените основной конфигурационный файл PostgreSQL командой sudo nano /etc/postgresql/<версия>/main/postgresql.conf. Найдите текст listen_addresses и замените его: listen_addresses = '*'. Это нужно, чтобы к серверу подключались с любых IP-адресов. Перезагрузите СУБД: sudo systemctl restart postgresql.

  2. Настройте брандмауэр. Откройте порт 5432: sudo ufw allow 5432/tcp. Убедитесь, что брандмауэр активирован: sudo ufw enable.

  3. Для дополнительной безопасности ограничьте доступ к порту для определенных IP-адресов: sudo ufw allow from <IP_адрес> to any port 5432.

После проверьте удаленное подключение с помощью клиентского PostgreSQL или утилиты psql. Для этого укажите IP-адрес сервера и порт 5432. Если все настроено правильно, сервер PostgreSQL станет доступен при удаленном подключении.

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

PostgreSQL оптимизируют через настройки параметров, которые влияют на производительность системы. Для этого нужен файл конфигурации postgresql.conf, обычно он расположен по пути /etc/postgresql/<версия>/main/postgresql.conf.

Что нужно настроить:

  • shared_buffers показывает объем оперативной памяти, который дадим PostgreSQL для буферизации данных. Установите значение в пределах 25–40% от объема оперативной памяти сервера: shared_buffers = 2GB.

  • work_mem — объем памяти для выполнения операций по сортировке и хешированию. Установите значение побольше: work_mem = 64MB.

  • maintenance_work_mem — объем памяти для операций вакуумирования и анализа. Для основной БД увеличьте это значение, чтобы процессы отрабатывались быстрее: maintenance_work_mem = 512MB.

  • effect_cache_size указывает объем файловой системы, которую PostgreSQL может использовать для кеширования. Этот параметр помогает оптимизировать выбор запросов. Рекомендуется устанавливать 50–75% доступной оперативной памяти: effective_cache_size = 6GB.

  • max_connections определяет максимальное количество одновременных соединений. Для высоконагруженных систем увеличьте это значение с учетом возможностей сервера: max_connections = 200.

После изменения параметров перезагрузите СУБД: sudo systemctl restart postgresql.

Как удалить PostgreSQL с Ubuntu

Чтобы удалить PostgreSQL и ее данные:

  1. Введите команду, чтобы удалить все версии PostgreSQL: sudo apt-get --purge remove postgresql*.

  2. Удалите дополнительные пакеты, например postgresql-client или postgresql-contrib, если они установлены. Для этого нужны команды: sudo apt-get --purge remove postgresql-client* или sudo apt-get --purge remove postgresql-contrib*.

  3. PostgreSQL сохраняет данные в каталоге /var/lib/postgresql. Если нужно что-то скопировать, выполните команду: sudo rm -rf /var/lib/postgresql.

  4. Удалите конфигурационные файлы PostgreSQL, которые обычно хранятся в /etc/postgresql: sudo rm -rf /etc/postgresql.

После удаления PostgreSQL убедитесь, что в системе не осталось никаких файлов:

  1. Проверьте, запущен ли PostgreSQL, с помощью команды: ps aux | grep postgres. Если какие-либо процессы еще работают, завершите их вручную: sudo kill -9 <PID>.

  2. Удалите ненужные зависимости после деинсталляции PostgreSQL командами: sudo apt-get autoremove и sudo apt-get autoclean.

  3. Выполните поиск с помощью команды: dpkg -l | grep postgresql. Если поиск ничего не дает, значит, СУБД удалена. Если что-то осталось, удалите вручную.

  4. Очистите журналы PostgreSQL, если они хранятся в /var/log/postgresql: sudo rm -rf /var/log/postgresql.

  5. Если PostgreSQL создал пользователя или группу, удалите их. Понадобятся команды sudo deluser postgres и sudo delgroup postgres.

Коротко о работе PostgreSQL на Ubuntu

  • PostgreSQL — объектно-реляционная СУБД с открытым исходным кодом, подходит и для команд с небольшими проектами, и для корпораций.

  • Создавать базы данных и управлять ими в PostgreSQL на Ubuntu можно через команды CREATE DATABASE, DROP DATABASE.

  • В PostgreSQL можно создавать таблицы, структурировать данные, управлять содержимым и настраивать поля под задачи. Для этого предусмотрены команды CREATE TABLE, INSERT, DROP COLUMN.

  • Для большей производительности дополнительно настройте память и подключение. А для удаленного доступа используйте SSL-соединение, чтобы данные оставались в безопасности.

  • Удаление PostgreSQL из Ubuntu — это пошаговый процесс. После удаления проверьте, чтобы не осталось файлов.

Продукты из этой статьи:
Иконка-Advanced Relational Database Service for PostgreSQL
Advanced Relational Database Service for PostgreSQL
Иконка-Evolution Image
Evolution Image
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®
30 июля 2025

Вам может понравиться