Схемы работы сценариев автоматизации СУБД Pangolin
Схема работы скриптов автоматизированной установки СУБД Pangolin
Схема процесса автоматизированного развертывания:
Данная схема актуальна для любого типа конфигурации СУБД Pangolin.
Схемы работы скриптов автоматизированного обновления СУБД Pangolin
В данном разделе представлены схемы процесса обновления для различных типов обновления с учетом различных конфигураций экземпляра СУБД.
Обновление с переносом данных
Схема процесса обновления с переносом данных для конфигурации 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
Описание шагов процесса обновления, представленных на схеме:
Если параметр 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 | Обновление прошло успешно | Обновление завершается |