Общее описание PostgreSQL — объектно-реляционная СУБД. Является свободной альтернативой коммерческой СУБД (таким как Oracle Database, Microsoft SQL Server и др.). В больших антивирусных сетях СУБД PostgreSQL может быть использована в качестве внешней БД для Dr.Web Enterprise Security Suite. Чтобы использовать PostgreSQL в качестве внешней БД 1.Установить сервер PostgreSQL или Postgres Pro. 2.Настроить Сервер Dr.Web на использование соответствующей внешней базы. Это можно сделать в конфигурационном файле или при помощи Центра управления: в меню Конфигурация Сервера Dr.Web, на вкладке База данных.
Установка и поддерживаемые версии 1.Загрузите самую последнюю версию бесплатного продукта PostgreSQL (сервер PostgreSQL и, если необходимо, соответствующий ODBC-драйвер) или, по крайней мере, не используйте версию ранее чем 8. 2.Создайте базу данных PostgreSQL одним из следующих способов: a)При помощи графического интерфейса pgAdmin. b)При помощи SQL-команды CREATE DATABASE.
Переход на внешнюю БД описан в п. Смена типа СУБД Dr.Web Enterprise Security Suite. Также обратите внимание на системные требования к Серверу Dr.Web при работе с внешней базой данных PostgreSQL (см. Руководство по установке, п. Системные требования). Параметры При настройке обращения к БД PostgreSQL используются параметры, описываемые в таблице ниже. PostgreSQL
Техническую информацию можно также найти по адресу https://www.postgresql.org/docs/. Взаимодействие Сервера Dr.Web с БД PostgreSQL через UDS При установке Сервера Dr.Web и БД PostgreSQL на одной машине возможна настройка их взаимодействия через UDS (доменный сокет UNIX). Чтобы настроить работу через UDS 1.В конфигурационном файле БД PostgreSQL postgresql.conf прописать следующую директорию для UDS: unix_socket_directory = ‘/var/run/postgresql’ 2.Перезапустить PostgreSQL. Настройка базы данных PostgreSQL Для увеличения производительности при работе с базой данных PostgreSQL рекомендуется провести настройку на основе информации из официальных руководств по базе данных. В случае использования базы данных больших размеров и при наличии соответствующих вычислительных ресурсов, рекомендуется настроить следующие параметры в конфигурационном файле postgresql. conf: Минимальная настройка:
Расширенная настройка:
|
PostgreSQL
В статье описана установка PostgreSQL для ОС Ubuntu Linux 20.04. Вы также можете ознакомиться с кратким руководством в документации.начало внимание
Для примера используется имя базы elma365, пользователь elma365 и пароль SecretPassword.
При настройке задайте эти данные согласно политике безопасности, принятой в вашей организации.
конец внимание
Установка PostgreSQL
Для корректной работы системы требуется PostgreSQL версии 10 — 13.
Для установки PostgreSQL добавьте официальный репозиторий:
sudo sh -c ‘echo «deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main» > /etc/apt/sources.list.d/pgdg.list’
wget —quiet -O — https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add —
sudo apt update
Далее установите PostgreSQL:
sudo apt install postgresql-13
Настройка PostgreSQL
Начало внимание
Для пароля разрешается применять следующие символы:
- Заглавные латинские буквы: от A до Z;
- Строчные латинские буквы: от a до z;
- Цифры от 0 до 9;
- Символы: !()-_+=$
Конец внимание
Для настройки PostgreSQL используйте следующие команды:
- Создайте отдельного пользователя `elma365` с паролем `SecretPassword` для работы с БД. Имя пользователя и пароль приведены для примера:
sudo -u postgres psql -c «CREATE ROLE elma365 WITH login password ‘SecretPassword’;»
- Создайте отдельную базу данных elma365 и назначьте выделенного пользователя elma365 её владельцем. Нельзя использовать существующую базу, т. к. система создаёт таблицы и схемы:
sudo -u postgres psql -c «CREATE DATABASE elma365 WITH OWNER elma365;»
- Добавьте необходимые расширения для базы данных elma365:
sudo -u postgres psql -d elma365 -c «CREATE EXTENSION \»uuid-ossp\»; CREATE EXTENSION pg_trgm;»
Разрешения подключения к PostgreSQL
- Добавьте IP-адрес сервера, на котором запущен PostgreSQL, в конфигурационный файл /etc/postgresql/13/main/postgresql.conf в параметр listen_addresses (например, 192.168.10.10):
sudo nano /etc/postgresql/13/main/postgresql.conf
listen_addresses = ‘localhost, 10. 0.1.1, 192.168.10.10′
10.0.1.1 является IP адресом по умолчанию при разрешении доступа к хосту из microk8s командой `sudo microk8s enable host-access`.
sudo nano /etc/postgresql/13/main/pg_hba.conf
host all all 10.0.0.0/8 md5
host all all 192.168.0.0/16 md5
- Перезагрузите сервис PostgreSQL:
sudo systemctl restart postgresql
Настройка ограничений и лимитов к PostgreSQL
- Откройте для редактирования конфигурационный файл /etc/postgresql/13/main/postgresql.conf
sudo nano /etc/postgresql/13/main/postgresql.conf
- Увеличьте максимальное количество подключений, изменив значение параметра max_connections на 2000:
max_connections = 2000
- Увеличьте максимальное количество блокировок на транзакцию, изменив значение параметра max_locks_per_transaction на 512, также необходимо раскомментировать эту строку (убрать знак решетки #):
max_locks_per_transaction = 512
- Перезагрузите сервис PostgreSQL:
sudo systemctl restart postgresql
Подключение к PostgreSQL
Строка для подключения к PostgreSQL:
postgresql://elma365:SecretPassword@<postgresql-server-address>:5432/elma365?sslmode=disable
Резервное копирование данных PostgreSQL с использованием elma365ctl dump
начало внимание
Во время создания резервной копии сервисы elma365 останавливаются, приложение становится недоступным.
конец внимание
- Для создания резервной копии данных postgresql, используйте следующую команду:
elma365ctl dump —parts=postgres —consistent
- Дамп сохранится в отдельную папку с указанием в названии версии поставки и временного штампа, например,
/backup/ELMA365_2022.11.5-rc_2023.01.09-05.45.01
.
Восстановление данных PostgreSQL с использованием elma365ctl restore
- Остановите сервисы приложения и подготовьте систему к восстановлению данных с помощью команды:
elma365ctl restore —prepare
После этого нужно пересоздать базу PostgreSQL.
- Удалите базу данных elma365 с помощью команды:
DROP DATABASE elma365;
- Создайте базу и назначьте выделенного пользователя её владельцем:
CREATE DATABASE elma365 WITH OWNER elma365;
- Включите в базе требуемые расширения:
CREATE EXTENSION «uuid-ossp»; CREATE EXTENSION pg_trgm;
- Восстановите данные с помощью команды:
elma365ctl restore —parts=postgres —path=/backup/<папка_с_дампом>
Система будет доступна для работы в течение нескольких минут после завершения работы команды.
create_external_database.html mongodb.html
Была ли статья полезной?
ДаНет
Выберите вариантРекомендации не помоглиТекст трудно понятьНет ответа на мой вопросСодержание статьи не соответствует заголовкуДругая причинаОсновные команды и флаги psql, которые вам необходимо знать
PostgreSQL или Postgres — это система управления объектно-реляционными базами данных, использующая язык SQL. Он бесплатный, с открытым исходным кодом, надежный, надежный и производительный. PostgreSQL также является одной из самых популярных и используемых реляционных баз данных.
psql
— это интерфейс, к которому вы можете получить доступ через терминал для взаимодействия с базами данных Postgres. Вы можете использовать его для подключения к базе данных, добавления, чтения и изменения данных, проверки доступных баз данных и полей, запуска команд из файла и т. д.
Если вы хотите узнать о командах Postgres или освежить память, вы попали по адресу! В этой статье вы узнаете о лучших командах и флагах psql
, которые вам необходимо знать при работе с PostgreSQL.
1. Подключиться к базе данных —
psql -d
Первый шаг включает в себя изучение того, как подключиться к базе данных. Существует два способа подключения к базе данных PostgreSQL, в зависимости от того, где находится база данных.
Та же база данных хоста
Если база данных находится на том же хосте, что и ваша машина, вы можете использовать следующую команду:
psql -d <имя базы данных> -U <имя пользователя> -W // пример psql -d tutorials_db -U администратор -W
Приведенная выше команда включает три флага:
-
-d
— указывает имя базы данных для подключения к -
-U
— указывает имя пользователя для подключения как -
-W
— заставляет psql запрашивать пароль пользователя перед подключением к базе данных
В этом примере команда подключает вас к tutorials_db
под пользователем admin
.
Другая база данных хоста
В тех случаях, когда ваша база данных размещена в другом месте, вы можете подключиться следующим образом:
psql -h <адрес БД> -d <имя БД> -U <имя пользователя> -W //пример psql -h my-psql-db.cloud.neon.tech -d tutorials_db -U администратор -W
Флаг -h
указывает адрес хоста базы данных.
Режим SSL
Могут быть случаи, когда вы хотите использовать SSL для соединения.
psql "sslmode=require host=dbname= user= " //пример psql "sslmode=require host=my-psql-db.cloud.neon.tech dbname=tutorials_db user=admin"
Приведенная выше команда открывает соединение SSL с указанной базой данных.
2. Список всех баз данных —
\l
Во многих случаях вам придется работать с несколькими базами данных. Вы можете просмотреть все доступные базы данных с помощью следующей команды:
л
На приведенном выше изображении показано, что происходит при выполнении команды. Вы получаете таблицу со всеми базами данных и их именами, владельцами, правами доступа и другой информацией.
3. Переключиться на другую базу данных —
\c
Вы также можете переключиться на другую базу данных с помощью следующей команды:
\c <имя БД> // пример \c tutorials_db
На изображении ниже показан результат после выполнения команды.
Команда переключается на указанную базу данных под пользователем, в который вы вошли ранее.
4. Список таблиц базы данных —
\dt
Допустим, вы хотите просмотреть все таблицы из базы данных. Вы можете перечислить все таблицы базы данных следующим образом:
\дт
Команда psql \dt
возвращает таблицы рядом с:
- схема, которой они принадлежат
- их типа
- их владелец
5. Описать таблицу —
\d
В psql также есть команда, позволяющая увидеть структуру таблицы.
\d <имя-таблицы> // пример \d учебники
Команда \d
возвращает все столбцы, их типы, коллекцию, могут ли они принимать значения NULL или нет, а также их настроенное значение по умолчанию.
Если вам нужна дополнительная информация о таблице, вы можете использовать команду:
\d+ <имя-таблицы>
Теперь вы получаете дополнительную информацию, такую как хранилище, сжатие, цель статистики и описание.
6. Список всех схем —
\дн
Команда \dn
psql выводит список всех схем базы данных.
Возвращает имена схем и их владельцев.
7. Список пользователей и их ролей —
\du
Иногда может потребоваться изменить пользователя. В Postgres есть команда, которая выводит список всех пользователей и их ролей.
\ду
Как видно из изображения, команда возвращает всех пользователей.
8.
Получить конкретного пользователя — \du
Вы также можете получить информацию о конкретном пользователе с помощью следующей команды:
\du <имя пользователя> //пример / du postgres
Теперь вы можете видеть роли указанного пользователя и то, является ли он членом группы или нет.
9. Список всех функций —
\df
Вы можете перечислить все функции из вашей базы данных с помощью команды \df
.
Команда возвращает все функции и:
- схема, которой они принадлежат
- имен
- тип данных результата
- типы данных аргументов
- тип
10. Список всех представлений —
\dv
Интерфейс psql
позволяет вывести список всех представлений базы данных с помощью команды \dv
.
11. Сохранить результаты запроса в файл —
\o
Могут быть случаи, когда вы захотите проанализировать результат запроса позже. Или два сравнивают два результата запроса. Интерфейс psql
позволяет это сделать.
Вы можете сохранить результаты запроса в файл следующим образом:
\o <имя-файла> // пример \o запрос_результаты ...запустите команды psql... \o - остановить процесс и снова вывести результаты в терминал
Сохраним в файл следующие результаты запроса:
- доступные таблицы базы данных
- результат описания таблицы базы данных
- список всех пользователей
- данные пользователя «postgres»
Примечание : Чтобы остановить сохранение результатов в файл, необходимо снова запустить команду \o
без имени файла.
На изображении выше показан файл, содержащий все результаты запроса.
12. Запуск команд из файла —
\i
Также возможен запуск команд из файла. Для простых команд это может быть не лучшим решением. Но когда вы хотите запустить несколько команд и сложных операторов SQL, это очень помогает.
Создайте файл txt
со следующим содержимым:
л \дт \ду
Когда вы запускаете файл, он должен вернуть список всех:
- базы данных
- таблиц базы данных
- пользователей
Вы можете запускать команды из файла со следующими команда psql
:
\i <имя-файла> // пример \i psql_commands.txt
Команда вернула все базы данных, таблицы и пользователей, как и ожидалось.
Выйти из psql —
\q
Вы вышли из интерфейса psql
с помощью команды \q
.
Резюме
Интерфейс psql
является мощным и позволяет выполнять многие действия, включая выполнение операторов SQL. Если вы хотите начать работу с PostgreSQL или углубить свои знания, ознакомьтесь с нашим руководством по PostgreSQL. Вы также можете ознакомиться со статьями о Postgre в нашем блоге.
Если вы ищете варианты размещения базы данных Postgres, проверьте эти варианты размещения PostgreSQL.
Дальнейшее чтение
- Хасура и Постгрес
- Основы PostgreSQL
- Выпуск Postgres 15: что нужно знать
- Изучайте Postgres бесплатно
- Лучшие решения бесплатного уровня баз данных PostgreSQL
- Ведущие бессерверные поставщики PostgreSQL
Основные команды postgres
В следующем списке перечислены некоторые из наиболее часто используемых команд, используемых для взаимодействия с PostgreSQL. Эти команды следует запускать в командной строке, а не в консоли psql.
createdb
Обычно пользователь базы данных, выполнивший эту команду, становится владельцем новой базы данных. Однако с помощью параметра -O можно указать другого владельца, если исполняющий пользователь имеет соответствующие привилегии.
createdb
является оболочкой оператора SQL CREATE DATABASE
. Принципиальной разницы между созданием баз данных с помощью этой утилиты и другими способами доступа к серверу нет.
dropdb
dropdb
уничтожает существующую базу данных PostgreSQL. Пользователь, выполняющий эту команду, должен быть суперпользователем базы данных или владельцем базы данных.
dropdb
— это оболочка SQL-оператора DROP DATABASE. Принципиальной разницы между удалением баз данных с помощью этой утилиты и другими методами доступа к серверу нет.
Например, если мы хотим удалить созданную ранее базу данных, мы должны использовать следующую команду:
dropdb sql_book
pg_dump
pg_dump
— это утилита для резервного копирования базы данных PostgreSQL. Он делает согласованные резервные копии, даже если база данных используется одновременно. pg_dump
не блокирует доступ других пользователей к базе данных (читателей или записывающих).
Есть и другие применения. Если вы хотите увидеть, какие операторы SQL будут использоваться для создания схемы и данных в базе данных, команда pg_dump
сделает то, что вы хотите (и многое другое). Следующая команда выведет эту информацию в виде операторов SQL:
$ pg_dump --inserts --clean sql_book
Вывод этой команды можно сохранить в файл с помощью перенаправления вывода команды:
$ pg_dump --inserts --clean sql_book > dump.sql
В дампе будет несколько операторов SQL для настройки параметров базы данных и установки права доступа к таблицам. Мы не будем рассматривать эти функции в этом курсе, так что не стесняйтесь просматривать их, но не беспокойтесь об их специфике.
восстановление базы данных с помощью psql
Мы можем использовать текстовый файл, созданный pg_dump
, для восстановления базы данных. Мы делаем это, читая
файл в команду psql
. Если бы мы использовали тот же файл, что и в предыдущем примере,
тогда команда, которую мы будем использовать, будет выглядеть так:
psql -d sql_book < dump.sql
Параметр -d указывает, к какой базе данных подключаться. Использование <
читает содержимое
файла dump.