PostgreSQL — это объектно-реляционная система управления базами данных с открытым исходным кодом. Она отличается высокой надежностью, масштабируемостью и широкими возможностями: поддержкой JSON, полнотекстовым поиском, хранимыми процедурами, расширениями и прочим.
Вы получаете полностью управляемый кластер PostgreSQL без необходимости ручной настройки — все происходит автоматически.
При создании кластера можно выбрать версию PostgreSQL: 14, 15, 16 или 17.
Создание баз
При создании нового кластера автоматически создается база с именем default_db
. Дополнительные базы можно создавать во вкладке «Базы данных» в интерфейсе.
Пользователи и привилегии
Пользователей можно создавать на вкладке «Пользователи». Для этого нажмите кнопку «Добавить».
В открывшемся окне задайте имя пользователя и пароль:
- Имя: от 3 до 64 символов. Допускаются латинские буквы, цифры и спецсимволы.
- Пароль: от 8 до 30 символов. Допускаются латинские буквы, цифры и спецсимволы.
После создания вы можете настроить привилегии для пользователя.
Чтобы изменить привилегии позже, откройте вкладку «Пользователи», нажмите на три точки рядом с нужным пользователем и выберите пункт «Привилегии».
В окне настройки выберите необходимые привилегии. Можно задать доступ к конкретной базе или ко всем базам сразу, включив опцию «Одинаковые для всех баз».
Доступные привилегии
Привилегия |
Назначение |
|
Чтение данных из таблиц, представлений и последовательностей. |
|
Добавление новых строк в таблицы. |
|
Изменение существующих строк в таблицах. |
|
Удаление строк из таблиц. |
|
Быстрое удаление всех строк из таблицы (без логирования отдельных удалений). |
|
Создание новых объектов в базе данных (таблиц, представлений, функций и др.). |
|
Использование таблицы в качестве внешнего ключа. |
|
Создание и выполнение триггеров на таблице. |
|
Создание временных таблиц в базе данных. |
|
Создание новых баз данных. |
Расширения
PostgreSQL поддерживает расширения, которые позволяют расширить стандартную функциональность. Ниже представлены расширения, доступные для PostgreSQL:
Название |
Описание |
|
Проверка целостности индексов и таблиц. |
|
Тип данных для строк без учета регистра. |
|
Перестроение таблиц и индексов без длительных блокировок. |
|
Сбор статистики по использованию ресурсов ядра операционной системы. |
|
Сбор и анализ статистики выполнения SQL-запросов. |
|
Поиск и сравнение строк с использованием триграмм (нечеткий поиск). |
|
Криптографические функции: хеширование, шифрование, цифровые подписи. |
|
Работа с географическими и геометрическими данными (GIS). |
|
Хранение и обработка временных рядов с поддержкой масштабируемых вставок и сложных запросов. |
|
Генерация UUID различных версий. |
|
Тип данных для векторов и методы доступа |
Для включения нужного расширения перейдите во вкладку «Конфигурация» и нажмите на кнопку «Изменить» в строке «Расширения».
Настройка параметров
Вы можете изменить параметры, используемые для PostgreSQL, перейдя во вкладку «Конфигурация» и нажав на кнопку «Изменить параметры» в строке «Параметры базы данных».
Для получения дополнительной информации о параметрах нажмите кнопку «Открыть описание» рядом с нужным параметром.
Чтобы применить изменения, нажмите кнопку «Применить» внизу страницы.
Подключение к базе
Подключиться к базе можно через встроенный веб-интерфейс — Adminer. Для этого нажмите кнопку «Веб-интерфейс» и выберите Adminer.
Подключение из терминала
Установите клиент PostgreSQL:
Ubuntu/Debian
sudo apt install postgresql-client
Arch
sudo pacman -S postgresql-libs
Fedora
sudo dnf install postgresql
Существует три способа подключения к кластеру PostgreSQL:
- по публичному IP;
- по приватному IP;
- по домену.
Команду подключения можно скопировать:
-
на вкладке «Дашборд»;
-
на вкладке «Подключение».
При подключении по домену используется защищенное подключение по TLS. В новых кластерах оно включено по умолчанию, в старых — требуется включение вручную.
Чтобы включить TLS:
- Перейдите во вкладку «Подключение».
- Нажмите кнопку «Включить защищенное подключение».
- Дождитесь завершения настройки.
После включения TLS для подключения потребуется установить сертификат.
Готовые команды для установки доступны в панели управления, во вкладке «Подключение», для всех популярных операционных систем.
Создание дампа
Для создания дампа используйте следующую команду:
pg_dump -x 'postgresql://<user>:<password>@<host>:5432/<db>' | gzip > default_db.sql.gz
Параметр -x
(--no-privileges
) исключает из дампа команды GRANT
и REVOKE
, так как назначение прав осуществляется через панель. Без этого флага возможны ошибки при загрузке дампа, хотя они не помешают восстановлению данных.
Загрузка дампа
Для загрузки дампа выполните:
zcat default_db.sql.gz | psql 'postgresql://<user>:<password>@<host>:5432/<db>'
Команда распаковывает дамп и передает его в клиент PostgreSQL для выполнения.
Репликация
Кластеры PostgreSQL в DBaaS используют связку Patroni и Etcd для обеспечения отказоустойчивости. Репликация работает по принципу leader-replica: один узел принимает все записи (лидер), а остальные получают изменения в асинхронном режиме.
В случае сбоя лидера система автоматически переключает роль на одну из реплик, обеспечивая высокую доступность базы данных.