Как установить PostgreSQL 15 в Debian 12

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

Содержание

Основные усовершенствования в PostgreSQL 15

  • Улучшенная производительность сортировки и сжатие данных: В PostgreSQL 15 усовершенствованы алгоритмы сортировки в памяти и на диске, что позволяет значительно увеличить скорость сортировки в зависимости от типа сортируемых данных. Запросы с использованием SELECT DISTINCT теперь могут выполняться параллельно. Этот выпуск также расширяет возможности повышения производительности на средства архивирования и резервного копирования, обеспечивая поддержку сжатия LZ4 и Zstandard (zstd) для файлов журнала записи (WAL) и внедряя пользовательские модули для архивирования.
  • Выразительные возможности для разработчиков: PostgreSQL 15 включает стандартную для SQL команду MERGE, позволяющую разработчикам писать условные SQL-запросы, включающие действия INSERT, UPDATE и DELETE в рамках одного оператора. Кроме того, добавлены новые функции для использования регулярных выражений для проверки строк. В этой версии также появилась функция security_invoker, позволяющая пользователям создавать представления, которые запрашивают данные, используя разрешения вызывающей стороны, а не создателя представления, что повышает безопасность данных.
  • Больше возможностей при логической репликации: Релиз предоставляет больше гибкости в управлении логической репликацией, включая фильтрацию строк и списки столбцов для издателей, а также функции для упрощения управления конфликтами. Кроме того, PostgreSQL 15 поддерживает использование двухфазной фиксации (2PC) с логической репликацией, что повышает согласованность и надежность данных.
  • Усовершенствования протоколирования и конфигурирования: PostgreSQL 15 представляет новый формат протоколирования - jsonlog, облегчающий обработку журналов PostgreSQL в структурированных системах протоколирования. Выпуск также обеспечивает большую гибкость в управлении конфигурацией PostgreSQL, включая возможность предоставления пользователям прав на изменение параметров конфигурации на уровне сервера.
  • Другие заметные изменения: PostgreSQL 15 имеет ряд других улучшений, таких как сбор статистики на уровне сервера в общей памяти, возможность сделать ICU collation по умолчанию для кластера или отдельной базы данных, а также добавление нового встроенного расширения - pg_walinspect, которое позволяет пользователям проверять содержимое файлов журналов с опережением записи непосредственно из интерфейса SQL. Кроме того, в этом выпуске отозвано разрешение CREATE у всех пользователей, кроме владельца базы данных из публичной схемы (или схемы по умолчанию), удален давно устаревший режим "эксклюзивного резервного копирования" и поддержка Python 2 из PL/Python.

В последующих разделах руководства будет показано, как установить PostgreSQL 15 на Debian 12 Bookworm, Debian 11 Bullseye или Debian 10 Buster, используя официальный репозиторий PostgreSQL APT Debian для последней версии, созданной для вашей версии дистрибутива Debian, гарантируя, что вы никогда не опоздаете получить обновление производительности или критическое обновление безопасности.

Установка PostgreSQL из APT-репозитория

Шаг 1: Обновление системы Debian

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

Шаг 2: Установка необходимых пакетов

Чтобы облегчить установку программного обеспечения базы данных, необходимы некоторые вспомогательные пакеты. Установите эти пакеты, выполнив следующую команду:

Шаг 3: Интеграция репозитория PostgreSQL

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

Теперь, когда ключ надежно аутентифицирован, мы можем импортировать репозиторий PostgreSQL в вашу систему:

Шаг 4: Обновление списка пакетов APT

После успешного импорта репозитория PostgreSQL следующей задачей будет обновление списка источников репозитория вашей системы. Это обновление гарантирует, что последние дополнения, включая репозиторий PostgreSQL, будут распознаны. Для этого выполните следующую команду:

Шаг 5: Начало установки PostgreSQL 15

После обновления системы и создания всех необходимых условий мы можем приступить к установке PostgreSQL 15. Установите базу данных и клиентское программное обеспечение с помощью следующей команды:

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

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

  • postgresql-client-15: Содержит клиентские библиотеки и двоичные файлы клиента.
  • postgresql-15: Содержит ядро сервера баз данных.
  • libpq-dev: Предлагает библиотеки и заголовки для разработки фронтенда на языке C.
  • postgresql-server-dev-15: Предоставляет библиотеки и заголовки для разработки бэкенда на языке C.

Шаг 6: Проверка успешности установки PostgreSQL 15

После установки очень важно проверить состояние службы PostgreSQL 15, чтобы убедиться в успешной установке и активной службе. Для этого выполните следующую команду:

Пример вывода:

systemctl systemd статус для postgresql 15 на debian linux ok пример

Если служба по какой-либо причине неактивна, активируйте ее и настройте автоматический запуск PostgreSQL при старте системы с помощью следующей команды:

Убедитесь, что вы заменили -now на --now, чтобы избежать ошибок. Эта проверка подтверждает успешную установку и активацию PostgreSQL 15, прокладывая путь к безопасному и эффективному управлению базами данных.

Навигация по служебным командам для PostgreSQL

В этом разделе мы рассмотрим основные служебные команды для управления сервером PostgreSQL. PostgreSQL работает как служба под метким названием "PostgreSQL", и мы можем управлять этой службой с помощью системного менеджера и менеджера служб systemd.

Остановка сервера PostgreSQL

Иногда вам может понадобиться остановить сервер PostgreSQL, возможно, для обслуживания или управления системными ресурсами. Для этого выполните следующую команду:

Эта команда дает команду службе PostgreSQL прекратить работу, освободив все ресурсы, которые она потребляла.

Запуск сервера PostgreSQL

Чтобы снова запустить сервер PostgreSQL после его остановки или просто запустить его, если он не запущен, используйте следующую команду:

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

Перезагрузка сервера PostgreSQL

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

Эта команда эффективно остановит службу PostgreSQL, а затем перезапустит ее.

Обновление сервера PostgreSQL

Если вы внесли изменения в конфигурацию, которые необходимо применить, не нарушая текущих операций службы PostgreSQL, вы можете использовать следующую команду:

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

Оценка состояния службы PostgreSQL

Чтобы узнать текущее состояние службы PostgreSQL, активна ли она, остановлена или столкнулась с какими-либо проблемами, вы можете воспользоваться следующей командой:

Эта команда позволяет получить снимок текущего состояния службы PostgreSQL, что очень важно для мониторинга и устранения неполадок.

Конфигурирование сервера PostgreSQL

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

Шаг 1: Взаимодействие с учетной записью PostgreSQL

В процессе установки PostgreSQL была создана учетная запись пользователя с именем 'postgres'. Эта учетная запись связана с ролью Postgres по умолчанию и имеет привилегию 'create role'. Таким образом, он может создавать новые роли в PostgreSQL.

Для взаимодействия с этой учетной записью используйте следующую команду:

После выполнения этой команды вы можете получить прямой доступ к приглашению PostgreSQL, набрав:

пример команды psql в терминале debian linux

Если теперь в терминале отображается "postgres=#", это означает успешное подключение к базе данных. Когда вы закончите работу с PostgreSQL, вы можете выйти из базы данных, введя команду:

Шаг 2: Альтернативный метод взаимодействия с PostgreSQL

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

Как и в первом случае, вы можете выйти из терминальной сессии, введя команду exit.

Шаг 3: Создание ролей пользователей и базы данных

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

В приведенной выше команде замените <username> на имя пользователя для новой учетной записи.

Затем создайте базу данных PostgreSQL для нового пользователя:

В этой команде замените <dbname> на имя новой базы данных.

Шаг 4: Предоставление доступа к базе данных новому пользователю

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

Затем предоставьте все привилегии новому пользователю на новой базе данных:

Убедитесь, что вы заменили <dbname> на имя вашей базы данных, а <username> на ваше новое имя пользователя.

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

Настройка брандмауэра UFW для PostgreSQL 15 в Debian

В этом разделе мы обсудим, как настроить Uncomplicated Firewall (UFW), чтобы разрешить PostgreSQL общаться через порт по умолчанию, 5432, что является необходимым шагом, если вы планируете получить доступ к своей базе данных за пределами localhost. Давайте продолжим шаг за шагом.

Шаг 1: Включение UFW

Во-первых, важно убедиться, что UFW включен в вашей системе. Чтобы убедиться в этом, выполните следующую команду:

Если UFW не установлен в вашей системе, его можно легко добавить с помощью менеджера пакетов apt, который поставляется в комплекте с Debian. Чтобы установить UFW, используйте команду:

Шаг 2: Создание правил брандмауэра UFW

Когда UFW включен и установлен, следующим шагом будет создание правила в UFW, которое разрешает трафик на порт по умолчанию PostgreSQL, 5432. Вы можете установить правила для диапазона подсетей или для отдельного IP-адреса.

Чтобы установить правило для диапазона подсетей, выполните следующую команду:

В приведенной выше команде замените 192.168.0.0/24 на диапазон вашей подсети.

Чтобы установить правило для отдельного IP-адреса, используйте команду:

Снова замените 192.168.0.0 на ваш IP-адрес.

Включение удаленного доступа к PostgreSQL

В этом разделе мы рассмотрим процесс разрешения удаленного доступа к серверу PostgreSQL. Этого можно достичь, изменив интерфейс прослушивания PostgreSQL по умолчанию с локального (127.0.0.1) на указанный IP, подсеть или все интерфейсы в конфигурационном файле сервера. Мы должны убедиться, что настройки брандмауэра UFW не блокируют этот удаленный доступ, как мы уже настраивали в Разделе 4.

Шаг 1: Определение версии PostgreSQL

Первый шаг - определить, какая версия PostgreSQL установлена в вашей системе. Для этого выполните следующую команду:

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

Шаг 2: Изменение параметров подключения в postgresql.conf

После того как вы определили версию PostgreSQL, следующей задачей будет настройка файла postgresql.conf. Этот файл служит основным конфигурационным файлом, определяющим поведение и настройки вашего сервера PostgreSQL. Давайте откроем этот файл для редактирования. Для этого мы воспользуемся текстовым редактором nano:

Перемещайтесь по файлу, пока не наткнетесь на раздел 'Настройки подключения'. Эта часть особенно важна, поскольку она определяет, как и где ваш сервер PostgreSQL прослушивает входящие соединения. Найдите строку, в которой написано listen_addresses = 'localhost'.

На данном этапе очень важно понять, что означает эта строка. По умолчанию ваш сервер PostgreSQL прослушивает соединения на localhost (127.0.0.1), что означает, что он ожидает соединения только с той же самой машины. Эта настройка может не соответствовать вашим потребностям, особенно если вы планируете разрешить внешние подключения к вашему серверу PostgreSQL.

Поэтому, чтобы изменить эту настройку, замените 'localhost' на конкретный IP-адрес, который вы хотите, чтобы PostgreSQL прослушивал. Однако если вы хотите, чтобы ваш сервер PostgreSQL был доступен с любого интерфейса, не ограничиваясь одним IP-адресом, замените 'localhost' на '*'. Таким образом, PostgreSQL будет прослушивать все доступные сетевые интерфейсы:

После того, как вы внесли необходимые изменения, настало время сохранить их и выйти из редактора. Чтобы сохранить изменения в редакторе nano, нажмите CTRL+O, подтвердите имя файла и нажмите Enter. После этого для выхода из редактора nano нажмите CTRL+X.

Шаг 3: Перезапуск сервера PostgreSQL

Чтобы изменения вступили в силу, необходимо перезапустить сервер PostgreSQL. Используйте следующую команду для перезапуска экземпляра PostgreSQL:

Шаг 4: Проверка изменений

Чтобы подтвердить, что изменения были успешно реализованы, используйте утилиту ss, встроенную в Debian, с помощью следующей команды:

Шаг 5: Настройка удалённых подключений в pg_hba.conf

Для более высокого уровня настройки и повышения безопасности доступа к PostgreSQL, файл pg_hba.conf является идеальным инструментом для точной настройки поведения вашего сервера PostgreSQL при приёме удалённых соединений. Чтобы открыть этот файл с помощью текстового редактора nano, выполните следующую команду:

Поначалу этот файл может показаться пугающим из-за своей всеобъемлющей природы. Однако, поняв его структуру и функции, вы оцените его гибкость. По сути, файл pg_hba.conf представляет собой набор правил, определяющих, откуда и как клиенты могут подключаться к базам данных вашего сервера PostgreSQL.

В каждой строке правил в файле pg_hba.conf вы можете указать:

  • Тип соединения (локальное для сокетов домена unix, хост для соединений TCP/IP).
  • Базу(ы) данных, к которой(ым) применяется это правило
  • Пользователь(и), к которому(ым) применяется это правило
  • Сетевой адрес, с которого разрешены соединения
  • Метод аутентификации

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

Вот что определяет эта строка:

  • host: Это правило применяется к соединениям TCP/IP.
  • mydb: Правило действует для соединений с базой данных 'mydb'.
  • myuser: Правило предназначено для соединений от пользователя 'myuser'.
  • 192.168.0.0/24: Соединения разрешены с любого IP-адреса в сети '192.168.100.0'.
  • md5: Соединения должны быть аутентифицированы с помощью хеширования пароля md5.

После изменения pg_hba.conf не забудьте сохранить и закрыть файл, используя CTRL+O для записи изменений и CTRL+X для закрытия редактора nano.

Заключение

На протяжении всего этого руководства мы провели вас через процесс установки PostgreSQL 15 на различные дистрибутивы Debian Linux, включая Debian 12 Bookworm, Debian 11 Bullseye и Debian 10 Buster. Мы обсудили конфигурацию сервера PostgreSQL, управление ролями пользователей и базами данных, настройку брандмауэра UFW и включение удалённого доступа. Каждый шаг был подробно описан с профессиональными и информативными объяснениями.

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий