Введение.
Продолжая изучение PostgreSQL переходим к рассмотрению вопросов управления и контроля работы, PostgreSQL часть 2.
Все статьи посвящённые PostgreSQL см. полезные ссылки.
или тэг БД
Подготовка PostgreSQL.
- Стенд
- Cервер ALT Linux, имя: lin-pq; IP 10.0.2.11;
- PostgreSQL X.X
- ПК Simply Linux, имя: lin-sl, IP=10.0.2.30
- Пользователь. имя: trt
Ввод команд PqSQL.
Прежде чем перейти к описанию дальнейших действий, PostgreSQL часть 2, выясним, как формируются команды и SQL запросы.
Для ввода команд и управление запросами в среде PostgreSQL существует три способа;
Консоль пользователя.
Находясь в сеансе консоли, пользователь должен иметь право для работы с БД. Под правами подразумевается присвоение роли, терминология PgSQL, для выполнение команд в БД.
Из консоли можно выполнить ограниченное число команд.
Оболочка BASH.
Из среды BASH управление осуществляет пользователь с именем postgres. Пользователь создаётся в процессе установки PgSQL, ему присваивается роль администратора всего кластера.
Это, пока, единственный пользователь, имеющий привилигированные права для управления PgSQL.
Как добавить пользователя в привилегированную группу, читайте в следующих частях.
Команда для входа в BASH.
$ sudo su - postgres -s /bin/bash
sudo
— выполнить команду от имени другого пользователяsu
— добавить права суперпользователяs
— путь к оболочке/bin/bash
— имя оболочки
Среда BASH позволяет выполнять основные команды управления сервером БД.
Интерактивный клиент psql.
Интерактивный клиент psql имеет расширенные и более гибкие возможности для работы с PqSQL включая сложные SQL запросы.
Установленный сервер из коробки имеет метод авторизации trust. Это означает, что при подключению к серверу, находясь в консоли, пароль вводить не требуется.
Все доступные методы авторизации читайте в других частях.
Команда для входа в окружение psql выглядит так.
$ psql -Uuser -p[port]
- Ключи.
-d
имя базы данных-h
имя сервера-p
номер порта сервера, можно не указывать если стандартный-U
имя пользователя
Таким образом, основными средами управления PgSQL являются BASH и Psql.
Настройка клиента.
Локальное подключение к серверу для выполненя команд, о чём говорилось выше не достаточно. В дальнейшем нам потребуется подключать новых пользователей для выполнения SQL запросов.
Осуществить удалённое подключение к PgSQL с помощью клиента psql можно изменив параметр listen_addresses в настройках postgresql.conf сервера.
Указанный параметр использует протокол TCP/IP. По умолчанию в listen_addresses указанно значение localhost — только для локальных подключений к серверу через unix-domain socket. Это значение можно оставить без изменений при условии, что сервер PgSQL и приложения установленные на нём, например Zabbix, работают на одном сервере.
При этом подключение создавать дополнительных пользователей не требуется — управление, как правило, осуществляет администратор.
используя права пользователя postgres.
Теперь рассмотрим вариант, где требуется доступ пользователей к БД из сетей разных диапазонов организации.
Значение listen_addresses из коробки.
-bash-3.2$ psql
postgres=# SHOW listen_addresses;
listen_addresses
------------------
localhost
(1 строка)
\q
Меняем параметр listen_addresses с localhot
на *
. Переменная *
позволяет разрешить подключение к серверу PgSQL из всех сетевых диапазонов организации по протоколу TCP/IP.
Корректировка listen_addresses .
-bash-3.2$ psql
postgres=# \! sed "s/.*listen_addresses =.*/listen_addresses = '*'/" -i /var/lib/pgsql/data/postgresql.conf
Перегружаем сервер для перечитывания новых значений.
-bash-3.2$ pg_ctl restart
Контролируем фиксацию значение.
-bash-3.2$ psql
postgres=# SHOW listen_addresses;
listen_addresses
------------------
*
(1 row)
\q
При желание параметр *
можно сузить до нужного диапазона сети.
Журнал PqSQL.
Сервер PqSQL позволяет вести журнал производительности и ошибок своей работы. При установке сервера, режим журналирования отключен. Пользователь, при желании, может включить контроль записи работы сервера с помощью журнала, отредактировав файл postgresql.conf. После наших действий в дереве каталога /var/lib/pgsq/data создаётся папка log, для хранения файлов журналов
Команда включающая режим журнала.
# \sed "s/.*logging_collector =.*/logging_collector = 'on'/" -i /var/lib/pgsql/data/postgresql.conf
Перегружаем сервер для перечитывания новых значений.
-bash-3.2$ pg_ctl restart
Контролируем фиксацию значения.
-bash-3.2$ psql
postgres=# SHOW listen_addresses;
listen_addresses
------------------
*
(1 строка)
Заключение.
В этой части конспекта рассмотренны базовые основы конфигурации и первичного управления сервером PgSQL. Понимание основ позволяет уверенно чувствовать себя при погружене в тему управления сервером баз данных PostgeSQL в дальнейшем.
Полезные сылки.