Перейти к основному содержимому

Глава 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.
  • Главы курса должны проходиться последовательно.
  • Материал в главах и лабораторных работах взаимосвязан, они также должны проходиться последовательно.