Схемы работы сценариев автоматизации СУБД Pangolin#

Схема работы скриптов автоматизированной установки СУБД Pangolin#

Схема процесса автоматизированного развертывания:

Схема процесса автоматизированного развертывания СУБД Pangolin

Данная схема актуальна для любого типа конфигурации СУБД Pangolin.

Схемы работы скриптов автоматизированного обновления СУБД Pangolin#

В данном разделе представлены схемы процесса обновления для различных типов обновления с учетом различных конфигураций экземпляра СУБД.

Обновление с переносом данных#

Схема процесса обновления с переносом данных для конфигурации standalone#

Схема процесса обновления с переносом данных для конфигурации standalone

Описание шагов процесса обновления, представленных на схеме:

Если параметр is_inner_full_backup пользовательского конфигурационного файла установлен в значение true, то в случае возникновения ошибок при обновлении на шаге 12, 13, 14, 18, 20, 21, 22 или 25 будет запущен автоматический откат стенда к исходному состоянию до начала обновления (шаг 26).

Номер шага

Наименование шага

Описание

1

Скачивание дистрибутива Pangolin

Загрузка версии дистрибутива СУБД Pangolin, на которую планируется обновление

2

Проверка переменных узла, полученных в качестве аргументов

Проверка наличия необходимых переменных и их корректности

3

Передача групповых переменных

Формирование и передача переменных необходимых для запуска Ansible плейбука разведчика

4

Запуск playbook разведчика обновления по триггеру

Данный Ansible плейбук выполняет необходимые проверки, чтобы убедится что стенд готов к обновлению, а также определяет тип обновления стенда с учетом версии, с которой будет производиться обновление

5

Вызов процесса обновления

Запуск процесса обновления

6

Проверка переменных узла, полученных в качестве аргументов

Проверка наличия необходимых переменных и их корректности

7

Передача групповых переменных

Формирование и передача переменных необходимых для запуска Ansible плейбука обновления

8

Запуск playbook обновления по триггеру

Запуск процесса обновления. В процессе определяется тип обновления, в данном случае обновление производится с переносом данных

9

Запуск базовых проверок готовности стенда к обновлению

Проведение базовых проверок готовности стенда к обновлению

10

Создание локальной резервной копии БД и ее валидация

Создание резервной копии. Производится при наличии параметра is_inner_full_backup=true в пользовательском конфигурационном файле

11

Включение блокировки трафика

В данном сценарии обновления на весь период включена блокировка трафика

12

Обновление компонента pangolin-auth-reencrypt

Обновление соответствующего компонента

13

Обновление компонента pangolin-certs-rotate

Обновление соответствующего компонента

14

Обновление компонента pangolin-security-utilities

Обновление соответствующего компонента

15

Остановка старой версии Pangolin

Остановка установленной версии СУБД

16

Обновление файлов конфигурации и установка новой версии СУБД Pangolin

Формирование новых конфигурационных файлов, с учетом используемых ранее настроек для СУБД и установка новой версии Pangolin

17

Запуск процесса миграции данных

Миграция данных в режиме hardlink

18

Запуск новой версии Pangolin

Запуск новой версии СУБД Pangolin

19

Сбор статистики и пересчет индексов БД

Производится сбор статистики и пересчет индексов БД

20

Обновление компонента Pangolin Pooler

Обновление соответствующего компонента

21

Обновление утилиты Pangolin Tuner

Обновление соответствующего компонента

22

Обновление компонента pangolin-diagnostic-tool

Обновление соответствующего компонента

23

Конфигурирование БД

Производится финальное конфигурирование СУБД, а именно:

1. Обновление каталога безопасности.
2. Формирование итоговых конфигурационных файлов.
3. Обновление расширений.
4. Активация пользователя для созданий резервного копирования (если подключена система резервного копирования).
5. Обновление символических ссылок для рабочих каталогов и перенесенных данных.
6. Настройка welcome message.
7. Засекречивание паролей в конфигурационных файлах

24

Выключение блокировки трафика

Выключение ранее установленной блокировки трафика

25

Обновление компонента pangolin-backup-tools

Обновление соответствующего компонента

26

Запуск процесса отката стенда к исходному состоянию, при необходимости

Данный этап производится в случае возникновения ошибок при обновлении на шаге 12, 13, 14, 18, 20, 21, 22 или 25.
Если параметр is_inner_full_backup пользовательского конфигурационного файла установлен в значение true, то будет запущен автоматический откат стенда к исходному состоянию до начала обновления

27

Обновление прошло успешно

Обновление завершается

Схема процесса обновления с переносом данных для конфигурации cluster#

Схема процесса обновления с переносом данных для конфигурации cluster

Описание шагов процесса обновления, представленных на схеме:

Если параметр is_inner_full_backup пользовательского конфигурационного файла установлен в значение true, то в случае возникновения ошибок при обновлении на шаге 13, 14, 15, 17, 18, 19 26, 27, 31, 32, 33 или 37 будет запущен автоматический откат стенда к исходному состоянию до начала обновления (шаг 39).

Номер шага

Наименование шага

Описание

1

Скачивание дистрибутива Pangolin

Загрузка версии дистрибутива СУБД Pangolin, на которую планируется обновление

2

Проверка переменных узла, полученных в качестве аргументов

Проверка наличия необходимых переменных и их корректности

3

Передача групповых переменных

Формирование и передача переменных необходимых для запуска Ansible плейбука разведчика

4

Запуск playbook разведчика обновления по триггеру

Данный Ansible плейбук выполняет необходимые проверки, чтобы убедится в готовности стенда к обновлению, а также определяет тип обновления стенда с учетом версии, с которой будет производиться обновление.
Для кластерной конфигурации проверяется задержка репликации между узлами. Полученная информация сравнивается с установленным в конфигурационном файле значением максимальной задержки. При превышении фактического значения над допустимым – выводится ошибка.

5

Вызов процесса обновления

Запуск процесса обновления

6

Проверка переменных узла, полученных в качестве аргументов

Проверка наличия необходимых переменных и их корректности

7

Передача групповых переменных

Формирование и передача переменных необходимых для запуска Ansible плейбука обновления

8

Запуск playbook обновления по триггеру

Запуск процесса обновления. В процессе определяется тип обновления, в данном случае обновление производится с переносом данных

9

Запуск базовых проверок готовности стенда к обновлению

Проведение базовых проверок готовности стенда к обновлению

10

Настройка процесса pg_receivewal

Настройка и запуск отдельного процесса непрерывного копирования WAL-записей с мастера на реплику (копирование производится в то же пространство, где будет находится локальная РК)

11

Создание локальной резервной копии БД и ее валидация (на реплике)

Создание резервной копии. Производится при наличии параметра is_inner_full_backup=true в пользовательском конфигурационном файле

12

Включение блокировки трафика

В данном сценарии обновления на весь период включена блокировка трафика

13

Обновление компонента pangolin-auth-reencrypt

Обновление соответствующего компонента

14

Обновление компонента pangolin-certs-rotate

Обновление соответствующего компонента

15

Обновление компонента pangolin-security-utilities

Обновление соответствующего компонента

16

Включение PAUSE mode

Включение режима PAUSE mode на Pangolin Manager

17

Обновление компонента Pangolin Manager на мастере

Обновление соответствующего компонента

18

Обновление компонента Pangolin Manager на арбитре

Обновление соответствующего компонента

19

Обновление компонента Pangolin Manager на реплике

Обновление соответствующего компонента

20

Установка пакета новой версии СУБД Pangolin (на мастере и реплике)

Установка пакета с новой версией СУБД Pangolin на мастер и на реплику

21

Обновление файлов конфигурации и установка новой версии СУБД Pangolin (на мастере и реплике)

Обновление файлов конфигурации

22

Остановка старой версии Pangolin (сначала основной узел, затем реплика)

Остановка установленной версии СУБД (действие выполняется первоначально на мастере, затем на реплике)

23

Остановка Pangolin Manager на мастере и на реплике

Остановка службы компонента Pangolin Manager (действие выполняется первоначально на мастере, затем на реплике)

24

Запуск процесса миграции данных на мастере

Миграция данных в режиме hardlink. Производится только на мастере

25

Запуск процесса миграции данных с мастера на реплику

Миграция данных с мастера на реплику с помощью утилиты rsync

26

Запуск новой версии Pangolin на мастере

Запуск новой версии СУБД Pangolin через Pangolin Manager

27

Запуск новой версии Pangolin на реплике

Запуск новой версии СУБД Pangolin через Pangolin Manager

28

Сбор статистики и пересчет индексов БД

Производится сбор статистики и пересчет индексов БД

29

Перечитывание конфигурационного файла Pangolin Manager и перезапуск службы

Выполняется перечитывание конфигурационного файла компонента и перезапуск службы Pangolin Manager (действия выполняется первоначально на мастере, затем на реплике)

30

Синхронизация кластера (выполняется на реплике)

Выполняется проверка синхронизации кластера на предмет отсутствия задержки между узлами. Проверка выполняется на реплике

31

Обновление компонента Pangolin Pooler

Обновление соответствующего компонента

32

Обновление утилиты Pangolin Tuner

Обновление соответствующего компонента

33

Обновление компонента pangolin-diagnostic-tool

Обновление соответствующего компонента

34

Выключение PAUSE mode

Выключение режима PAUSE mode на Pangolin Manager

35

Конфигурирование БД

Производится финальное конфигурирование СУБД, а именно:

1. Обновление каталога безопасности.
2. Формирование итоговых конфигурационных файлов.
3. Обновление расширений.
4. Активация пользователя для созданий резервного копирования (если подключена система резервного копирования).
5. Обновление символических ссылок для рабочих каталогов и перенесенных данных.
6. Настройка welcome message.
7. Засекречивание паролей в конфигурационных файлах

36

Выключение блокировки трафика

Выключение ранее установленной блокировки трафика

37

Обновление компонента pangolin-backup-tools

Обновление соответствующего компонента

38

Отключение процесса pg_receivewal

Выключение ранее активной службы pg_receivewal

39

Запуск процесса отката стенда к исходному состоянию, при необходимости

Данный этап производится в случае возникновения ошибок при обновлении на шаге 13, 14, 15, 17, 18, 19 26, 27, 31, 32, 33 или 36.
Если параметр is_inner_full_backup пользовательского конфигурационного файла установлен в значение true, то будет запущен автоматический откат стенда к исходному состоянию до начала обновления

40

Обновление прошло успешно

Обновление завершается