Глава 01. Введение
О чем этот курс
Курс разработан для обучения администрированию СУБД Pangolin. В качестве базовой использовалась версия 6.2.0. Этот курс не фокусируется на особенностях Pangolin и приведенные примеры будут приблизительно так же работать и на обычном (ванильном) PostgreSQL 15. В местах, специфичных для Pangolin, имеются указания об этом.
Примеры на слайдах и лабораторных работах выполнены в среде одной из популярных операционных систем, управление пакетами в стиле RPM. Pangolin можно устанавливать в нескольких операционных системах, и некоторые из них ориентированы на управление ПО в стиле deb пакетов. С некоторыми изменениями, примеры будут работать и там, но размещение файлов и каталогов будет иным.
Для успешного прохождения курса важно владеть языком SQL хотя бы на уровне понимания запросов. В качестве источника помощи по SQL используйте: https://www.postgresql.org/docs/15/tutorial.html.
Так как все примеры сделаны в командной строке, то для успешного изучения материала вполне достаточно клиента psql. Знание Unix утилит сильно поможет в изучении материалов курса, хотя в примерах даны общие комментарии о действиях, выполняемых командами. Обычно в Linux устанавливается стандартная для Unix система помощи man, представляющая собой справочник по командам, конфигурационным файлам и прочему. Более подробные материалы приводятся часто в системе info, которая также есть в большинстве Linux систем.
Как изучать материалы курса
Материал глав содержит как теоретические данные, так и практические примеры, которые следует выполнять для достижения понимания сути глав. Простое прочтение материала не даст никакого эффекта. Все примеры на слайдах и в лабораторных работах выполнялись реально и могут быть повторены. Выполнять примеры в главах следует строго последовательно. Сами главы содержат материал, зависящий от предыдущих глав, поэтому проходить их также следует последовательно.
Для более полного изучения материала необходимо читать также и документацию: https://www.postgresql.org/docs/15/index.html.
При самостоятельном выполнении примеров обращайте особое внимание на вид приглашения командной строки - обычно по нему можно определить, от имени какого пользователя в операционной системе выполняется команда. Или же, к какой базе данных выполнено подключение. Также для команд операционной системы важно, в каком каталоге файловой системы они выполняются. При подключении к базам данных важно не перепутать, к какой конкретно выполнено подключение в примере. Обращайте внимание на результат, который продемонстрирован в примере. Если результат выполнения введенных Вами команд значительно отличается - это может быть поводом задуматься о правильности повторения примера.
Команды операционной системы
[student@p620 ~]$ pwd
home/student
[student@p620 ~]$ sudo -u postgres ls -ld $PGDATA
drwx------ 25 postgres postgres 4096 ноя 11 15:06 /pgdata/06/data
[student@p620 ~]$ sudo -iu postgres
[postgres@p620 ~]$ pwd
/var/lib/postgres
[postgres@p620 ~]$ cd $PGDATA
[postgres@p620 data]$
Здесь:
student@p620
- пользователь в сеансе.- Команды операционной системы выделены жирным шрифтом.
- Приглашение командной строки оболочки заканчивается символом доллар $.
- Символ тильда ~ - домашний каталог пользователя.
- Каталог ~postgres - домашний каталог пользователя postgres.
- Приглашение оболочки программируется переменной PS1.
Перед командами, выполняемыми в оболочке Bash, в примерах указано приглашение командной строки. Например:
- [student@p620 ~]$ - сеанс пользователя student, текущий каталог - домашний (символ тильда) - /home/student;
- [student@p620 tmp]$ - сеанс пользователя student, текущий каталог /tmp;
- [postgres@p620 ~]$ - в сеансе Bash пользователь postgres, текущий каталог - домашний каталог пользователя postgres - /var/lib/postgres;
- [postgres@p620 data]$ в сеансе Bash пользователь postgres, текущий каталог - data, полный путь /pgdata/06/data.
Обратите особое внимание на то, что от имени пользователя ОС student можно выполнять команду sudo, так как она специально настроена на это, а в сеансе postgres команду sudo вызвать нельзя.
Например:
[student@p620 ~]$ sudo -iu postgres
[postgres@p620 ~]$ sudo -u postgres ls -ld $PGDATA postgres отсутствует в файле sudoers. Администратор был оповещён об этом событии.
Команды в psql
Приглашение psql в сеансе непривилегированного пользователя СУБД заканчивается символом >
:
- Для суперпользователя вместо этого символ
#
. - Если команда не завершена, то перед
>
или#
ставится символ тире-
. - Вид приглашения командной строки в psql программируется.
student@student=> SELECT student@student-> user;
user
---------
student
(1 строка)
postgres=# SELECT user;
user
----------
postgres
(1 строка)
Приглашение непривилегированного пользователя в клиенте psql заканчивается обычно символом >
. Вид приглашения программируется, однако символ >
обычно не заменяют. Если в сеансе находится суперпользователь, то приглашение psql заканчивается #
.
В приглашении по умолчанию выводится имя базы данных, к которой выполнено подключение. Например, postgres=#
.
Здесь в сеансе находится суперпользователь, а БД, к которой выполнено подключение - postgres
.
Другой пример: student@student=>
.
Здесь показано перенастроенное приглашение для пользователя student
. Имя пользователя здесь перед @
, а после - имя БД, к которой выполнено подключение.
Если в приглашении =>
или (для суперпользователя) =#
, то psql ожидает начала ввода команды.
Если приглашение выглядит ->
или -#
- это значит, что продолжается ввод команды.
В psql введенные команды SQL должны заканчиваться символом точка с запятой ;
.
Содержание курса
- Установка СУБД.
- Клиентское подключение.
- Работа в psql.
- Физическое хранение.
- Обслуживание СУБД.
- Авторизация и аутентификация.
- Архитектура.
- Конфигурация сервера.
- Транзакции.
- Базы данных.
- Резервное копирование.
- Репликация.
- Подключение к внешним источникам.
Итоги главы
- Курс представляет собой введение в администрирование Pangolin 6.2.0.
- Курс показывает устройство PostgreSQL, на котором основан Pangolin, особенности которого кратко отмечены.
- Курс предполагает минимальное знание языка SQL.
- Работа в Pangolin демонстрируется в среде Linux, поэтому требуется знакомство с утилитами командной строки Unix.
- Главы курса должны проходиться последовательно.
- Материал в главах и лабораторных работах взаимосвязан, они также должны проходиться последовательно.