vji:tantor1:start
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
vji:tantor1:start [2025/08/01 09:40] – vji | vji:tantor1:start [2025/08/22 08:26] (текущий) – vji | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Tantor: Базовая архитектура стенда ====== | ====== Tantor: Базовая архитектура стенда ====== | ||
===== (Этап 1) Проверка, | ===== (Этап 1) Проверка, | ||
- | ---- | ||
- | >Для инсталляции СУБД Tantor необходимо удостовериться, | + | > Для инсталляции СУБД Tantor необходимо удостовериться, |
- | ---- | + | > Для практики нам понадобится 6 виртуальных сервера c предустановленной ОС ALSE 1.8 и сетевой связанностью. |
- | >Для практики нам понадобится 6 виртуальных сервера c предустановленной ОС ALSE 1.8 и сетевой связанностью. | + | |
> | > | ||
- | > | + | > **tplatform.example** -- сервер для палатформы Tantor (4 cpu / 8гб ram / 40гб HDD) |
- | >**db1 db2 db3** -- сервера для СУБД по (2 cpu / 2гб ram / 20гб HDD) | + | > **db1 db2 db3** -- сервера для СУБД по (2 cpu / 2гб ram / 20гб HDD) |
- | > | + | > **haproxy1 haproxy2** -- для балансировщика по (2 cpu / 2гб ram / 20гб HDD) |
- | ---- | ||
- | >Для платформы Tantor обязательно домен второго уровня, | + | > Для платформы Tantor обязательно домен второго уровня, |
- | ---- | + | > Если планируете проходить практику на своем стенде, |
- | >Если планируете проходить практику на своем стенде, то для создания ВМ платформы Tantor обязательно используем host-passthrough в настройках ВМ гипервизора (прямой доступ к аппаратным ресурсам процессора) с доступам к инструкциям sse и avx. | + | > Иначе не заработает модуль Advanced analytics |
- | > | + | > Как проверить что все хорошо - на вывод команд в CLI на хосте tplatform |
- | + | ||
- | >Как проверить что все хорошо - на вывод команд в CLI на хосте tplatform | + | |
- | + | ||
- | ---- | + | |
Обе инструкции должны выводить ответ: | Обе инструкции должны выводить ответ: | ||
Строка 42: | Строка 35: | ||
Далее с bastion подключаемся на хосты tplatform, db1, db2, db3, haproxy1, haproxy2 | Далее с bastion подключаемся на хосты tplatform, db1, db2, db3, haproxy1, haproxy2 | ||
- | ---- | + | > !!! В рамках практикума подключение без пароля к хостам внутри стенда можно выполнять только с bastion, между узлами недоступно. |
- | + | ||
- | >!!! В рамках практикума подключение без пароля к хостам внутри стенда можно выполнять только с bastion, между узлами недоступно. | + | |
- | ---- | ||
< | < | ||
ssh tplatform | ssh tplatform | ||
Строка 65: | Строка 55: | ||
Обычно он идет в комплекте с графическими окружениями Linux. | Обычно он идет в комплекте с графическими окружениями Linux. | ||
- | > | + | > NetworkManager включен, |
< | < | ||
nmcli device status | nmcli device status | ||
Строка 111: | Строка 101: | ||
source / | source / | ||
</ | </ | ||
- | |||
- | ---- | ||
Проверить синтаксис файла (опционально) без отключения loopback | Проверить синтаксис файла (опционально) без отключения loopback | ||
Строка 159: | Строка 147: | ||
</ | </ | ||
- | ---- | + | > Как правило указаны frozen ветки /uu/* оперативного обновления для того, чтобы не произошло непреднамеренного обновление на самую последнюю версию ОС по ветке, которая может привести к не стабильной работе ПО Tantor. |
+ | > для получения более свежего релиза пакетов достаточно сменить uu/1 на uu/2, сохранить. | ||
+ | > В закрытом сегменте заказчика используются свои репозитории или ISO образы с личного кабинета Астра. | ||
- | >Как правило указаны frozen ветки /uu/* оперативного обновления для того, чтобы не произошло непреднамеренного обновление на самую последнюю версию ОС по ветке, которая может привести к не стабильной работе ПО Tantor. | ||
- | >для получения более свежего релиза пакетов достаточно сменить uu/1 на uu/2, сохранить. | ||
- | >В закрытом сегменте заказчика используются свои репозитории или ISO образы с личного кабинета Астра. | ||
- | |||
- | ---- | ||
< | < | ||
deb https:// | deb https:// | ||
Строка 226: | Строка 211: | ||
</ | </ | ||
- | ---- | + | > Зависимости нужны для Tantor СУБД на хостах db1 db2 db3 |
- | + | ||
- | > | + | |
< | < | ||
sudo apt install libllvm13 libpython3.11 libxsldb1.1 libz3-4 lsof apt-transport-https gnupg -y | sudo apt install libllvm13 libpython3.11 libxsldb1.1 libz3-4 lsof apt-transport-https gnupg -y | ||
</ | </ | ||
- | >При установке пакета СУБД Tantor их сам запросит и установит через сетевой репозиторий. | + | > При установке пакета СУБД Tantor их сам запросит и установит через сетевой репозиторий. |
- | ---- | ||
На хосте tplatform устанавливаем графику и браузер, | На хосте tplatform устанавливаем графику и браузер, | ||
Строка 287: | Строка 269: | ||
iperf -p 5432 -c db3 | iperf -p 5432 -c db3 | ||
</ | </ | ||
- | |||
- | ---- | ||
или через утилиту nmap: | или через утилиту nmap: | ||
- | ---- | + | > -sT |
+ | > -p - номер, проверяемого порта | ||
+ | > <IP адрес> | ||
- | > | ||
- | > | ||
- | ><IP адрес> | ||
- | |||
- | ---- | ||
Пример, | Пример, | ||
Строка 311: | Строка 288: | ||
ss -ntlup | ss -ntlup | ||
</ | </ | ||
- | + | [[vji:tantor2:start|Этап 2 Подготовка]] | |
- | ===== (Этап 2) Подготовка===== | + | |
- | + | ||
- | Скачиваем пакет СУБД Tantor и скрипт инсталятор | + | |
- | [[https:// | + | |
- | + | ||
- | Скачиваем скрипт установки через публичный репозиторий Tantor | + | |
- | Будем работать под root, но можно также и через sudo | + | |
- | < | + | |
- | sudo -i | + | |
- | mkdir distr | + | |
- | cd distr | + | |
- | wget https:// | + | |
- | chmod +x db_installer.sh | + | |
- | </ | + | |
- | + | ||
- | Если закрытый сегмент, | + | |
- | Tantor СУБД нужной версии и скрипт инсталяции предварительно на к себе носитель из: | + | |
- | [[https:// | + | |
- | + | ||
- | be-версия Tantor СУБД для тестового использования можно скачать | + | |
- | [[https:// | + | |
- | + | ||
- | Устанавливаем пакет СУБД Tantor на db1 db2 db3. | + | |
- | [[https:// | + | |
- | + | ||
- | + | ||
- | ==== Установка через доступ интернета be-версия ==== | + | |
- | + | ||
- | Определим репозиторий | + | |
- | < | + | |
- | export NEXUS_URL=" | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | > | + | |
- | > | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ---- | + | |
- | < | + | |
- | ./ | + | |
- | --do-initdb \ | + | |
- | --major-version=16 \ | + | |
- | --edition=be | + | |
- | </ | + | |
- | + | ||
- | Пример установки в фоновом режиме с выводом в лог файл | + | |
- | Конструкция в Linux системах ''" | + | |
- | Работает для любого выполнения команд или скриптов, | + | |
- | рекомендую изучить дополнительно через поиск в интернете работу с Linux CLI | + | |
- | < | + | |
- | nohup ./ | + | |
- | --do-initdb \ | + | |
- | --major-version=16 \ | + | |
- | --edition=be > install_tantor_be_serever.log 2>&1 & | + | |
- | </ | + | |
- | Чтение изменения лога в реальном времени | + | |
- | < | + | |
- | tail -1000f install_tantor_be_serever.log | + | |
- | </ | + | |
- | + | ||
- | ==== Способ установки локально, | + | |
- | + | ||
- | Пример копирования файлов на стенд из практикума | + | |
- | Скачиваем файллы из личного кабинета астры [[https:// | + | |
- | Перейдите в каталог, | + | |
- | < | + | |
- | cd /tmp | + | |
- | </ | + | |
- | Копируем сначала на bastion в /tmp | + | |
- | < | + | |
- | scp -i / | + | |
- | scp -i / | + | |
- | </ | + | |
- | Далее подключившись по ssh на bastion и с него копируем на db1 db2 db3 | + | |
- | < | + | |
- | ssh -i / | + | |
- | cd /tmp | + | |
- | scp tantor-be-server-16_16.8.0_amd64.deb tantor@db1:/ | + | |
- | scp db_installer.sh tantor@db1:/ | + | |
- | scp tantor-be-server-16_16.8.0_amd64.deb tantor@db2:/ | + | |
- | scp db_installer.sh tantor@db2:/ | + | |
- | scp tantor-be-server-16_16.8.0_amd64.deb tantor@db3:/ | + | |
- | scp db_installer.sh tantor@db2:/ | + | |
- | </ | + | |
- | Подключаемся через bastion к хостам db1, db2, db3 | + | |
- | < | + | |
- | ssh db1 | + | |
- | sudo -i | + | |
- | cd /tmp | + | |
- | chmod +x db_installer.sh | + | |
- | </ | + | |
- | Установка пакета через скрипт с инициализацией БД | + | |
- | < | + | |
- | ./ | + | |
- | --from-file=/ | + | |
- | --do-initdb | + | |
- | </ | + | |
- | + | ||
- | ==== После установки пакета СУБД, назначаем права пользователя postgres на структуру каталогов на хостах | + | |
- | < | + | |
- | sudo chown -R postgres: | + | |
- | </ | + | |
- | Сменим пароль на УЗ postgres в операционной системе на хостах | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | + | ||
- | ---- | + | |
- | < | + | |
- | sudo passwd postgres | + | |
- | </ | + | |
- | Посмотрим информацию о БД | + | |
- | < | + | |
- | sudo -iu postgres pg_controldata / | + | |
- | </ | + | |
- | посмотреть процесс работы инстанса | + | |
- | < | + | |
- | sudo -iu postgres cat / | + | |
- | sudo -iu postgres psql -c " | + | |
- | </ | + | |
- | + | ||
- | Допускается установка нескольких экземпляра разной версии СУБД на один узел. | + | |
- | При этом название экземпляров, | + | |
- | + | ||
- | ==== Проверка службы и автозагрузка сервиса СУБД Tantor. ==== | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | >status - показать запущен (loaded) сервис и его состояние (active) работает | + | |
- | + | ||
- | ---- | + | |
- | < | + | |
- | sudo systemctl enable tantor-be-server-16.service | + | |
- | sudo systemctl status tantor-be-server-16.service | + | |
- | </ | + | |
- | Посмотреть запущенные процессы | + | |
- | < | + | |
- | ps -efH | grep tantor | + | |
- | </ | + | |
- | Проверка запуска сервиса СУБД Tantor по журналам | + | |
- | Проверка осуществляется запуском утилиты journalctl с ключем -u , казывающим наименование сервиса, | + | |
- | < | + | |
- | sudo journalctl -u tantor-be-server-16.service | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | >По умолчанию сетевые настройки в файле pg_hba.conf позволяют подключиться только суперпользователю postgres СУБД Tantor непосредственно с сервера через **local unix socket**. | + | |
- | >Для разрешения подключения с других узлов необходимо внести соответствующие строки в файлы **pg_hba.conf** и postgresql.conf. | + | |
- | >В конце листинга есть **FAQ** доп информация: | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ===== (Этап | + | |
- | + | ||
- | Скачиваем и Распаковываем архив с Платформой Tantor. | + | |
- | [[https:// | + | |
- | + | ||
- | ==== Способ при наличии доступа в интернет ==== | + | |
- | + | ||
- | Загрузим инсталлятор на хост tplatform согласно документации. | + | |
- | Всегда смотрите новую версию по ссылке выше. | + | |
- | < | + | |
- | sudo -i | + | |
- | mkdir distr | + | |
- | cd distr | + | |
- | wget https:// | + | |
- | </ | + | |
- | Распакуем из архива | + | |
- | < | + | |
- | tar -xvf tantor-eco-5.3.0.tar.gz | + | |
- | </ | + | |
- | + | ||
- | ==== Способ, | + | |
- | + | ||
- | Скачиваем файллы из личного кабинета астры [[https:// | + | |
- | < | + | |
- | cd /tmp | + | |
- | wget https:// | + | |
- | </ | + | |
- | Пример копирования файлов на стенд tplatform из практикума | + | |
- | Копируем сначала на bastion в /tmp | + | |
- | < | + | |
- | scp -i / | + | |
- | </ | + | |
- | Далее подключившись по ssh на bastion и с него копируем на tplatform | + | |
- | < | + | |
- | ssh -i / | + | |
- | cd /tmp | + | |
- | scp tantor-eco-5.3.0.tar.gz tantor@tplatform:/ | + | |
- | </ | + | |
- | Далее с bastion хоста подключаемся на хост tplatform | + | |
- | < | + | |
- | ssh tplatform | + | |
- | sudo -i | + | |
- | cd /tmp | + | |
- | </ | + | |
- | Распакуем из архива | + | |
- | < | + | |
- | tar -xvf tantor-eco-5.3.0.tar.gz | + | |
- | </ | + | |
- | + | ||
- | ==== Инсталяция Платформы Tantor. ==== | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | [[https:// | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | Для установки Платформы на Astra Linux версии 1.8.2 необходимо переключить уровень безопасности для docker на astra-sec-level-6 | + | |
- | < | + | |
- | sudo mkdir -p / | + | |
- | sudo nano / | + | |
- | </ | + | |
- | Вставляем и сохраняем | + | |
- | < | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | </ | + | |
- | Перезапускаем службу docker | + | |
- | < | + | |
- | sudo systemctl restart docker | + | |
- | </ | + | |
- | Запуск установки из каталога, | + | |
- | < | + | |
- | sudo ./ | + | |
- | </ | + | |
- | В ходе интерактивной установки будут запрошены данные: | + | |
- | ^ Параметр ^ Значение ^ Описание ^ | + | |
- | | **Tantor Platform administrator email:** | < | + | |
- | | **Tantor Platform administrator name:** | < | + | |
- | | **Tantor Platform domain name:** | < | + | |
- | | **SSL certificates match domain name**: | N | Cертификаты SSL для имени домена Платформы, | + | |
- | | **Сreate the self-signed certificates: | + | |
- | | **set integration with SMTP server:** | N | Настройки сервера почты в рамках практикума пропускаем | | + | |
- | + | ||
- | если бы указывали настройки сервера почты: | + | |
- | ^ Параметр ^ Описание ^ | + | |
- | | **SMTP server domain name:** | доменное имя сервера электронной почты, если имеется, | + | |
- | | **SMTP server domain name port** | порт сервера электронной почты | | + | |
- | | **SMTP server user email** | имя постового ящика на который будут отправляться оповещения от Платформы Tantor | | + | |
- | | **SMTP server user password** | пароль почтового ящика | | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | + | ||
- | ---- | + | |
- | ^ Параметр ^ Описание ^ | + | |
- | | **Which platform setup deployment you want to install? (1/2/3):** 3 | выбор конфигурации Платформы Tantor | | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | + | ||
- | ==== Подключение к Платформе, | + | |
- | + | ||
- | подключаемся по RDP на хост tplatform и выполняем выше указанные действия в браузере. | + | |
- | Доступ по RDP на tplatform < | + | |
- | '' | + | |
- | '' | + | |
- | + | ||
- | * Первое подключение к Платформе с помощью браузера, | + | |
- | * Согласиться с политикой лицензирования и нажать Ок | + | |
- | * Установить новый пароль суперпользователя Платформы | + | |
- | * Зайти в тенант | + | |
- | * Создать новое рабочее пространство New workspace (имя произвольно) | + | |
- | + | ||
- | ==== Проверки успешности установки и запуска сервисов Платформы. Состояние контейнеров Платформы можно посмотреть командами. ==== | + | |
- | + | ||
- | Убедиться, | + | |
- | < | + | |
- | docker ps | + | |
- | </ | + | |
- | Если необходимо перезагрузить платформу | + | |
- | < | + | |
- | cd / | + | |
- | docker-compose stop | + | |
- | docker-compose start | + | |
- | docker-compose ps | + | |
- | </ | + | |
- | Порты на узле Платформы | + | |
- | < | + | |
- | ss -ntlup | + | |
- | </ | + | |
- | + | ||
- | ==== Запуск утилиты диагностики для Платформы sdc-tantor, идет в комплекте архива. В случае неудачного завершения установки или обновления платформы. ==== | + | |
- | + | ||
- | [[https:// | + | |
- | + | ||
- | < | + | |
- | cd distr | + | |
- | + | ||
- | chmod 755 ./ | + | |
- | + | ||
- | ./ | + | |
- | </ | + | |
- | Архив создан и сохранён в: | + | |
- | '' | + | |
- | + | ||
- | > | + | |
- | > | + | |
- | + | ||
- | ===== (этап 4) установка агента Tantor и последующем добавлении инстанса СУБД в платформу ===== | + | |
- | + | ||
- | Для установки агента Tantor и последующем добавлении инстанса СУБД в платформу необходимо перейти на сервер СУБД и произвести предложенные Платформой действия. | + | |
- | [[https:// | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | >!! Установку агента всегда начинаем на лидере в кластере !! | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | + | ||
- | * Элемент ненумерованного спискаОткрыть рабочее пространство в Платформе | + | |
- | * Элемент ненумерованного спискаДобавить новый инстанс (сервер СУБД) Add instance | + | |
- | * Элемент ненумерованного спискаВыбрать тип инстанса (в наше примере Tantor) | + | |
- | * Элемент ненумерованного спискаУказать IP адрес, порт и имя БД | + | |
- | * Элемент ненумерованного спискаПлатформа сообщает, | + | |
- | * Элемент ненумерованного спискаДалее необходимо выполнить ряд предлагаемых Платформой действий на узле сервера СУБД, для исключения ошибки скопировать, | + | |
- | + | ||
- | Узнаем IP адрес нашего сервера СУБД | + | |
- | < | + | |
- | ip a | + | |
- | </ | + | |
- | пример вывода: | + | |
- | < | + | |
- | inet 10.2.0.11/ | + | |
- | </ | + | |
- | Установка PMA агента Платформы Tantor при условии если везде вход по паролю и через графический интерфейс команда не проходит, | + | |
- | читайте оф документацию [[https:// | + | |
- | пример: | + | |
- | < | + | |
- | pmaagent configure --config_postgres_patroni -h 10.2.0.11 -p 5432 -d postgres -U postgres -W postgres -P 8008 -D | + | |
- | </ | + | |
- | дополнительно смотрите тех документацию по ссылке выше, а также '' | + | |
- | < | + | |
- | pmaagent --help | + | |
- | pmaagent instances add --help | + | |
- | </ | + | |
- | + | ||
- | ==== Проверка службы старта агента. ==== | + | |
- | + | ||
- | < | + | |
- | sudo systemctl daemon-reload | + | |
- | sudo systemctl start pmaagent.service | + | |
- | sudo systemctl status pmaagent.service | + | |
- | </ | + | |
- | + | ||
- | Если нет связи с агентом, | + | |
- | < | + | |
- | systemctl stop pmaagent.service | + | |
- | systemctl start pmaagent.service | + | |
- | </ | + | |
- | Конфиг агента \\ | + | |
- | ''/ | + | |
- | Лог агента \\ | + | |
- | ''/ | + | |
- | + | ||
- | ==== Установка дополнительных элементов для взаимодействия Птатформы и СУБД. (расширений / EXTENSION в СУБД Tantor)(pg_stat_statements, | + | |
- | + | ||
- | [[https:// | + | |
- | + | ||
- | Для работы Advanced analytics, создание ключей RSA под root на сервере tplatform | + | |
- | < | + | |
- | sudo -i | + | |
- | ssh-keygen -t rsa | + | |
- | </ | + | |
- | Скопируйте в нужные директории созданные ключи следующей командой: | + | |
- | < | + | |
- | cp / | + | |
- | </ | + | |
- | Скопируйте созданный публичный ключ на сервер базы данных, | + | |
- | < | + | |
- | ssh-copy-id -i / | + | |
- | ssh-copy-id -i / | + | |
- | ssh-copy-id -i / | + | |
- | </ | + | |
- | Проверьте возможность зайти на сервер базы данных с помощью добавленного ключа: | + | |
- | < | + | |
- | ssh postgres@db1 | + | |
- | ssh postgres@db2 | + | |
- | ssh postgres@db3 | + | |
- | </ | + | |
- | + | ||
- | ==== Настройка параметров и расширений / EXTENSION на наблюдаемой СУБД: pg_stat_statements, | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | > | + | |
- | + | ||
- | >В отказоустойчивых кластерах типа Patroni, необходимо использовать единую конфигурацию для всех узлов. | + | |
- | > | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | + | ||
- | Подключаемся к одному из серверов, | + | |
- | В дальнейшем эти операции нужно выполнить на каждой наблюдаемой БД. | + | |
- | < | + | |
- | sudo -iu postgres psql | + | |
- | </ | + | |
- | Выполняем команды на создание расширений и параметров: | + | |
- | Если в параметре '' | + | |
- | < | + | |
- | create EXTENSION pg_stat_statements; | + | |
- | create EXTENSION pg_store_plans; | + | |
- | alter system set shared_preload_libraries = pg_stat_statements, | + | |
- | alter system set logging_collector = on; | + | |
- | alter system set log_line_prefix = '%m [%p:%v] [%d] %r %a '; | + | |
- | alter system set log_lock_waits = on; | + | |
- | alter system set lc_messages = ' | + | |
- | alter system set track_io_timing = on; | + | |
- | alter system set deadlock_timeout = 1000; | + | |
- | alter system set log_min_duration_statement = 1000; | + | |
- | alter system set log_filename = ' | + | |
- | alter system set log_destination = ' | + | |
- | alter system set log_statement = ' | + | |
- | </ | + | |
- | Перезагрузка СУБД и проверка сервиса СУБД, должно быть '' | + | |
- | < | + | |
- | sudo systemctl restart tantor-be-server-16.service | + | |
- | sudo systemctl status tantor-be-server-16.service | + | |
- | </ | + | |
- | Добавляем параметры auto_explain | + | |
- | < | + | |
- | sudo -iu postgres psql | + | |
- | </ | + | |
- | < | + | |
- | alter system set pg_store_plans.min_duration = 1000; | + | |
- | alter system set auto_explain.log_min_duration = 1000; | + | |
- | alter system set auto_explain.log_nested_statements = ' | + | |
- | alter system set auto_explain.log_analyze = on; | + | |
- | alter system set auto_explain.log_buffers = on; | + | |
- | SELECT pg_reload_conf(); | + | |
- | </ | + | |
- | Сколько параметров установлено в файлах параметров конфигурации | + | |
- | < | + | |
- | select sourcefile, count(*) from pg_settings group by sourcefile; | + | |
- | </ | + | |
- | Какие параметры из каких файлов конфигурации были считаны и применены при запуске экземпляра | + | |
- | Так же через этот вывод можно проверить себя, правильно ли вы задали параметры до перезагрузки СУБД. | + | |
- | < | + | |
- | select name, setting, substring(sourcefile, | + | |
- | </ | + | |
- | Для корректной работы модуля '' | + | |
- | требуется добавить следующее разрешение в файле '' | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | < | + | |
- | host | + | |
- | </ | + | |
- | Чтобы новые параметры '' | + | |
- | < | + | |
- | sudo -iu postgres psql -c " | + | |
- | </ | + | |
- | или '' | + | |
- | < | + | |
- | sudo systemctl restart tantor-be-server-16.service | + | |
- | </ | + | |
- | Чтобы изменения вступили в силу для Advanced analytics, на сервере tplatform перезапустите контейнер | + | |
- | < | + | |
- | docker restart pg_monitor_collector | + | |
- | </ | + | |
- | Посмотрите результат в Платформе, | + | |
- | Должны появится графики \\ | + | |
- | В модуле '' | + | |
- | + | ||
- | ==== Ротация и очистка логов СУБД Tantor ''/ | + | |
- | + | ||
- | Эти параметры уже заданы, | + | |
- | Для просмотра или изменения можно использовать Платформу Tantor или командами в psql: \\ | + | |
- | '' | + | |
- | '' | + | |
- | < | + | |
- | logging_collector = on # Включение сбора логов | + | |
- | log_directory = ' | + | |
- | log_filename = ' | + | |
- | log_rotation_age = 1d # Ротация ежедневно | + | |
- | log_rotation_size = 10MB # Или при достижении размера | + | |
- | </ | + | |
- | Посмотреть логи по примеру, | + | |
- | < | + | |
- | less / | + | |
- | </ | + | |
- | Даем привилегии УЗ postgres на использование crontab | + | |
- | < | + | |
- | sudo usermod -aG crontab postgres | + | |
- | </ | + | |
- | Логинимся под УЗ postgres | + | |
- | < | + | |
- | su - postgres | + | |
- | </ | + | |
- | Создаем скрипт очистки | + | |
- | Вставляем строки, | + | |
- | Не забудьте указать правильный путь на ваши логи. | + | |
- | < | + | |
- | nano cleanup_logs.sh | + | |
- | </ | + | |
- | < | + | |
- | # | + | |
- | find / | + | |
- | find / | + | |
- | </ | + | |
- | Применяем бит исполнения файла скрипта | + | |
- | < | + | |
- | chmod +x cleanup_logs.sh | + | |
- | </ | + | |
- | Вставляем задание на выполнение в cron, сохраняем и проверяем. | + | |
- | < | + | |
- | crontab -e | + | |
- | </ | + | |
- | < | + | |
- | </ | + | |
- | проверяем, | + | |
- | < | + | |
- | crontab -l | + | |
- | </ | + | |
- | + | ||
- | ===== (этап 5) Настройка репликации встроенными инструментами СУБД (ручной Failover/ | + | |
- | + | ||
- | > | + | |
- | + | ||
- | Создадим отдельного пользователя для репликации repl - имя пользователя | + | |
- | < | + | |
- | sudo -iu postgres psql | + | |
- | CREATE ROLE repl WITH REPLICATION LOGIN ENCRYPTED PASSWORD ' | + | |
- | \password | + | |
- | </ | + | |
- | Правим строчку в pg_hba, тут со стороны заказчика нужно указать, | + | |
- | Правило подключения, | + | |
- | Можно оставить так. | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | >!!! чтобы не мучиться с корректировкой настроек после '' | + | |
- | + | ||
- | ---- | + | |
- | < | + | |
- | sudo nano / | + | |
- | </ | + | |
- | < | + | |
- | host replication | + | |
- | host all | + | |
- | </ | + | |
- | Добавляем параметры, | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | или через '' | + | |
- | < | + | |
- | sudo -iu postgres psql | + | |
- | </ | + | |
- | < | + | |
- | alter system set listen_addresses = ' | + | |
- | alter system set wal_level = replica; | + | |
- | alter system set wal_log_hints = on; | + | |
- | alter system set max_wal_senders = 10; | + | |
- | alter system set fsync = on; | + | |
- | alter system set synchronous_commit = on; | + | |
- | alter system set hot_standby = on; | + | |
- | alter system set hot_standby_feedback = on; | + | |
- | alter system set synchronous_standby_names = '1 (db1, db2)'; -- для async репликации оставьте пустое значение | + | |
- | alter system set max_replication_slots = 10; | + | |
- | alter system set wal_keep_size = ' | + | |
- | </ | + | |
- | После внесение изменений перезапускаем сервис | + | |
- | < | + | |
- | sudo systemctl restart tantor-be-server-16.service | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | + | ||
- | ---- | + | |
- | < | + | |
- | systemctl stop tantor-be-server-16.service | + | |
- | su - postgres | + | |
- | cd / | + | |
- | </ | + | |
- | Сохраним архивную копию папки '' | + | |
- | < | + | |
- | tar -cvzf main_backup-`date +%s`.tgz data | + | |
- | rm -rf data/ | + | |
- | </ | + | |
- | Переносим папку '' | + | |
- | < | + | |
- | export PGAPPNAME=db2 | + | |
- | pg_basebackup -h db1 -U repl -p 5432 -D data -R -X stream -C -S db2_replica -c fast -P | + | |
- | </ | + | |
- | >'' | + | |
- | + | ||
- | Проверяем, | + | |
- | < | + | |
- | ls -la data/ | + | |
- | </ | + | |
- | Исправим на правильный listen_addresses | + | |
- | Если указывали '' | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | или | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | < | + | |
- | listen_addresses = ' | + | |
- | </ | + | |
- | Корректируем правило в '' | + | |
- | Если указывали 10.2.0.0/ | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | < | + | |
- | host replication | + | |
- | </ | + | |
- | Запустим сервис | + | |
- | < | + | |
- | sudo systemctl start tantor-be-server-16.service | + | |
- | sudo systemctl status tantor-be-server-16.service | + | |
- | </ | + | |
- | На мастере '' | + | |
- | < | + | |
- | sudo -iu postgres psql -c " | + | |
- | </ | + | |
- | На реплике '' | + | |
- | < | + | |
- | sudo -iu postgres psql -c " | + | |
- | SELECT pg_is_in_recovery();" | + | |
- | </ | + | |
- | Проверим репликацию, | + | |
- | < | + | |
- | sudo -iu postgres psql -c " | + | |
- | </ | + | |
- | Проверим на реплике db2 10.2.0.12 | + | |
- | < | + | |
- | sudo -iu postgres psql -c " | + | |
- | </ | + | |
- | ==== Смена лидера. (меняем роли местами мастер -> реплику). ==== | + | |
- | + | ||
- | Проверить статус репликации на '' | + | |
- | Должно вернуть '' | + | |
- | < | + | |
- | sudo -iu postgres psql | + | |
- | SELECT pg_is_in_recovery(); | + | |
- | </ | + | |
- | Проверить отставание на '' | + | |
- | < | + | |
- | SELECT pg_last_wal_receive_lsn(), | + | |
- | </ | + | |
- | смотрим статус синхронизации на мастере '' | + | |
- | < | + | |
- | sudo -iu postgres psql | + | |
- | \x | + | |
- | SELECT * FROM pg_stat_replication; | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | + | ||
- | ---- | + | |
- | Это можно сделать с помощью команды: | + | |
- | < | + | |
- | ALTER SYSTEM SET default_transaction_read_only = ON; | + | |
- | SELECT pg_reload_conf(); | + | |
- | </ | + | |
- | На реплике выполните '' | + | |
- | Относительно видео - скорректировано создание слота репликации '' | + | |
- | < | + | |
- | SELECT pg_promote(); | + | |
- | SELECT pg_is_in_recovery(); | + | |
- | SELECT * FROM pg_create_physical_replication_slot(' | + | |
- | SELECT slot_name, slot_type FROM pg_replication_slots; | + | |
- | </ | + | |
- | Остановить сервис '' | + | |
- | < | + | |
- | sudo systemctl stop tantor-be-server-16.service | + | |
- | </ | + | |
- | выполняем догон '' | + | |
- | Делаем '' | + | |
- | либо при создании УЗ '' | + | |
- | '' | + | |
- | В PostgreSQL доступ к функции pg_read_binary_file ограничен по соображениям безопасности, | + | |
- | Обычно только суперпользователи (superuser) имеют к ней доступ. | + | |
- | < | + | |
- | su - postgres | + | |
- | pg_rewind --target-pgdata=/ | + | |
- | </ | + | |
- | Создайте файл '' | + | |
- | < | + | |
- | touch / | + | |
- | rm -f / | + | |
- | </ | + | |
- | Настроить старый мастер db1 10.2.0.11 как новую реплику. | + | |
- | Отредактируем строчки в файле \\ | + | |
- | '' | + | |
- | '' | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | + | ||
- | > | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | Корректируем правило в '' | + | |
- | Если указывали '' | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | < | + | |
- | host replication | + | |
- | </ | + | |
- | Запустить сервис '' | + | |
- | < | + | |
- | sudo systemctl start tantor-be-server-16.service | + | |
- | </ | + | |
- | Проверим на новом мастере '' | + | |
- | < | + | |
- | sudo -iu postgres psql -c " | + | |
- | </ | + | |
- | На новой реплике '' | + | |
- | < | + | |
- | sudo -iu postgres psql -c " | + | |
- | SELECT pg_is_in_recovery();" | + | |
- | </ | + | |
- | Если мы хотим полностью разделить БД и сделать самостоятельными: | + | |
- | '' | + | |
- | отключает синхронную фиксацию записи данных транзакции на диск, нарушит надежность сохранности данных. | + | |
- | < | + | |
- | SELECT pg_promote(); | + | |
- | alter system set synchronous_standby_names = ''; | + | |
- | SELECT pg_reload_conf(); | + | |
- | SELECT | + | |
- | select pg_drop_replication_slot(' | + | |
- | </ | + | |
- | + | ||
- | ===== (этап 6) Вариант сценария проведения нагрузочного тестирования. ===== | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >TPC-B , TPC-C (OLTP-систем (онлайн-транзакционная обработка)) | + | |
- | > * эталонный тест, используется для стресс-тестирования пиковой пропускной способности базы данных, | + | |
- | + | ||
- | >TPC-H (OLAP-систем (онлайн-аналитическая обработка)) | + | |
- | > * эталонный тест, эмулирующий работу приложений бизнес-аналитики, | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | * pgbench -- программа для запуска эталонных тестов на PostgreSQL, выполняет последовательность команд SQL, вычисляет среднюю скорость транзакций (транзакций в секунду), | + | |
- | + | ||
- | * go-tpc -- набор инструментов тестирования рабочих нагрузок на основе тестов TPC для СУБД PostgreSQL, выполняющий тест TPC-H. \\ | + | |
- | [[https:// | + | |
- | + | ||
- | * sysbench -- это универсальный инструмент для стресс-тестирования | + | |
- | + | ||
- | * HammerDB -- поддерживающее TPC-C, TPC-H и другие сценарии. для само изучения более профессиональный инструмент \\ | + | |
- | [[https:// | + | |
- | [[https:// | + | |
- | + | ||
- | ==== Пример использования pgbench. ==== | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | Создаем пустую БД для тестирования | + | |
- | < | + | |
- | psql -c " | + | |
- | </ | + | |
- | Размер БД может быть изменен согласно запросу Заказчика до необходимого значения, | + | |
- | Наполняем данными 1 гб (по требованию заказчика) \\ | + | |
- | -i – опция инициализации; | + | |
- | -s 68 – параметр scale factor, определяет объём данных. \\ | + | |
- | 100 000 ? 68 = 6 800 000 строк. | + | |
- | < | + | |
- | pgbench -h localhost -d tesdb2 -U postgres -i -s 68 | + | |
- | </ | + | |
- | Проверяем размер создавшейся БД | + | |
- | Можно посмотреть результат в Платформе Tantor. | + | |
- | < | + | |
- | psql -c "\l+ tesdb2" | + | |
- | </ | + | |
- | Выполняем эмуляцию нагрузки | + | |
- | < | + | |
- | pgbench -h localhost -p 5432 -c 90 -j 2 -t 100 tesdb2 ## 90 пользователей, | + | |
- | </ | + | |
- | < | + | |
- | pgbench -c 90 -j 25 -P 60 -T 200 tesdb2 | + | |
- | pgbench -n -c 90 -j 25 -T 200 tesdb2 -b select-only | + | |
- | </ | + | |
- | -c — количество конкурентных подключений | + | |
- | -P — вывод информации каждые * сек | + | |
- | -T — длительность теста в сек | + | |
- | -j — число потоков | + | |
- | -n — не запускать VACUUM перед тестом. | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | ==== Пример использования sysbench. ==== | + | |
- | + | ||
- | Установка | + | |
- | < | + | |
- | sudo apt install sysbench | + | |
- | sysbench --help | + | |
- | </ | + | |
- | Создание тестовой БД | + | |
- | < | + | |
- | sudo -iu postgres createdb testdb2 | + | |
- | </ | + | |
- | Инициализация данных в СУБД через локальное соединение: | + | |
- | < | + | |
- | sysbench oltp_common --db-driver=pgsql --pgsql-host=127.0.0.1 --pgsql-port=5432 --pgsql-user=postgres --pgsql-password=postgres --pgsql-db=testdb2 --tables=10 --table-size=100000 prepare | + | |
- | </ | + | |
- | Проведение теста: | + | |
- | Сценарии '' | + | |
- | '' | + | |
- | '' | + | |
- | < | + | |
- | sysbench oltp_read_write --db-driver=pgsql --pgsql-host=127.0.0.1 --pgsql-port=5432 --pgsql-user=postgres --pgsql-password=postgres --pgsql-db=testdb2 --tables=10 --table-size=100000 --threads=10 --time=300 run | + | |
- | </ | + | |
- | Очистка: | + | |
- | < | + | |
- | sysbench oltp_common --db-driver=pgsql --pgsql-host=127.0.0.1 --pgsql-port=5432 --pgsql-user=postgres --pgsql-password=postgres --pgsql-db=testdb2 --tables=10 --table-size=100000 cleanup | + | |
- | </ | + | |
- | + | ||
- | ==== Пример использования go-tpc. ==== | + | |
- | + | ||
- | Установка [[https:// | + | |
- | Подготовка БД для модели аналитических запросов | + | |
- | < | + | |
- | go-tpc tpch prepare -d postgres -U postgres -p ' | + | |
- | </ | + | |
- | Запуск эмуляции аналитического запроса | + | |
- | < | + | |
- | go-tpc tpch run -d postgres -U postgres -p ' | + | |
- | </ | + | |
- | + | ||
- | ===== FAQ доп информация, | + | |
- | + | ||
- | ==== Для удобства отображения в psql редактируем содержание файла подсказки .psqlrc (~/.psqlrc) ==== | + | |
- | + | ||
- | Рекомендуется также настроить подсказку командного интерпретатора СУБД и вывести информацию по серверу, | + | |
- | Настраиваем вид подсказки в файле .psqlrc в домашнем каталоге пользователя postgres при подключении к СУБД. | + | |
- | переходим под пользователя postgres | + | |
- | < | + | |
- | sudo su - postgres | + | |
- | </ | + | |
- | Редактируем конфигурационный файл | + | |
- | < | + | |
- | nano ~/.psqlrc | + | |
- | </ | + | |
- | Добавляем в файл .psqlrc строку | + | |
- | пример цветной промпт | + | |
- | < | + | |
- | \set PROMPT1 ' | + | |
- | \set PROMPT2 ' | + | |
- | </ | + | |
- | Сохраняем и вызываем psql для проверки | + | |
- | < | + | |
- | psql | + | |
- | </ | + | |
- | если мы работаем из под другого пользователя в системе с правами sudo, то можно подключиться к БД по локальному соединению так | + | |
- | < | + | |
- | sudo -iu postgres psql | + | |
- | </ | + | |
- | Пояснение для подсказки ' | + | |
- | \set PROMPT1 ' | + | |
- | + | ||
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | + | ||
- | Пример вывода командной строки с подсказкой для сервера СУБД с IP 10.2.0.11, работающем на порту 5432, для пользователя postgres и БД test | + | |
- | < | + | |
- | 10.2.0.11: | + | |
- | </ | + | |
- | + | ||
- | ==== Cписок команд psql которые часто используются. ==== | + | |
- | + | ||
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | + | ||
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | + | ||
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | + | ||
- | эти переменные также можно указать в '' | + | |
- | + | ||
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | '' | + | |
- | + | ||
- | ==== Доп утилиты в ОС для работы с postgres, которые начинаются на pg* ==== | + | |
- | + | ||
- | [[https:// | + | |
- | < | + | |
- | sudo su - postgres | + | |
- | </ | + | |
- | </ | + | |
- | psql | + | |
- | pg_ctl | + | |
- | pg_basebackup --help | + | |
- | pg_dumpall | + | |
- | pg_dump | + | |
- | pg_upgrade | + | |
- | pg_isready | + | |
- | </ | + | |
- | '' | + | |
- | Расширение " | + | |
- | + | ||
- | '' | + | |
- | < | + | |
- | ls -la / | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | Если psql не запускается под пользователем postgres (bash: psql: команда не найдена), | + | |
- | значит в переменной окружения path отсутствует путь до / | + | |
- | ---- | + | |
- | + | ||
- | редактируем переменную окружения | + | |
- | < | + | |
- | nano ~/.bashrc | + | |
- | </ | + | |
- | добавляем и сохраняем | + | |
- | < | + | |
- | export PATH=/ | + | |
- | </ | + | |
- | Перезапускаем оболочку | + | |
- | < | + | |
- | exec bash | + | |
- | </ | + | |
- | Проверяем подключение, | + | |
- | < | + | |
- | psql -p 5432 -h localhost -U postgres | + | |
- | </ | + | |
- | ---- | + | |
- | + | ||
- | >!!! При необходимости, | + | |
- | Настройки правил подключения к БД. | + | |
- | Документация по настройке pg_hba.conf: | + | |
- | [[https:// | + | |
- | ---- | + | |
- | < | + | |
- | sudo nano / | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | >!!! При необходимости, | + | |
- | >По умолчанию в параметрах конфигурации в файле postgresql.conf сервера СУБД не настроен вывод системных журналов СУБД в отдельных каталог и нет прямой ссылки на каталог данных. | + | |
- | > | + | |
- | < | + | |
- | sudo nano / | + | |
- | </ | + | |
- | Укажем путь сохранения log файлов | + | |
- | < | + | |
- | logging_collector = on; | + | |
- | log_directory = '/ | + | |
- | </ | + | |
- | Применение параметров без перезагрузки сервера СУБД с проверкой | + | |
- | < | + | |
- | sudo -iu postgres psql | + | |
- | SELECT pg_reload_conf(); | + | |
- | SHOW logging_collector; | + | |
- | </ | + | |
- | посмотреть лог БД, пример: | + | |
- | < | + | |
- | less / | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | >!!! не забудьте скорректировать скрипт Ротация логов. | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | При проверке системных журналов ОС | + | |
- | < | + | |
- | sudo journalctl -u tantor-be-server-16.service | + | |
- | </ | + | |
- | Утилита сообщает, | + | |
- | Можно посмотреть в каталоге ''/ | + | |
- | + | ||
- | ==== Сетевые настройки слушателя и порта инстанса СУБД. ==== | + | |
- | < | + | |
- | sudo nano / | + | |
- | </ | + | |
- | ищем и выставляем параметры | + | |
- | < | + | |
- | listen_addresses = ' | + | |
- | </ | + | |
- | или можно указать прямо через запятую несколько IP сетевых интерфейсов на одном хосте. | + | |
- | < | + | |
- | listen_addresses = ' | + | |
- | + | ||
- | port = 5433 | + | |
- | </ | + | |
- | перезагружаем и проверяем | + | |
- | < | + | |
- | sudo systemctl restart tantor-be-server-16 | + | |
- | sudo ss -tulnp | grep postgres | + | |
- | </ | + | |
- | подключаемся к СУБД по новому порту | + | |
- | < | + | |
- | sudo -iu postgres psql -p 5433 -h 10.2.0.11 -U postgres | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | >!!! При необходимости, | + | |
- | > | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | Останавливаем службу СУБД | + | |
- | < | + | |
- | sudo -i | + | |
- | systemctl stop tantor-be-server-16.service | + | |
- | </ | + | |
- | Редактируем в '' | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | Прямая ссылка на новый каталог данных, | + | |
- | < | + | |
- | data_directory = '/ | + | |
- | </ | + | |
- | Переносим data каталог через команду mv или копируем через cp -R в новый каталог | + | |
- | < | + | |
- | cp -R / | + | |
- | </ | + | |
- | Назначаем права на новый каталог | + | |
- | < | + | |
- | sudo chown -R postgres: | + | |
- | </ | + | |
- | Меняем путь в службе | + | |
- | < | + | |
- | sudo nano / | + | |
- | + | ||
- | Environment=PGDATA=/ | + | |
- | </ | + | |
- | Запускаем экземпляр | + | |
- | < | + | |
- | sudo systemctl daemon-reload | + | |
- | sudo systemctl start tantor-be-server-16.service | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | > | + | |
- | > | + | |
- | >При этом инициализация инстанса СУБД не будет производиться автоматически. | + | |
- | > | + | |
- | + | ||
- | ---- | + | |
- | Переходим в УЗ postgres | + | |
- | < | + | |
- | sudo su - postgres | + | |
- | </ | + | |
- | Инициализация нового экземпляра, | + | |
- | < | + | |
- | / | + | |
- | </ | + | |
- | Правим порт, например 5433, если нужно, смотри комментарий ниже. | + | |
- | < | + | |
- | nano / | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | >!!! Если планируется запускать параллельно несколько экземпляров, | + | |
- | >В продуктивных системах это не рекомендуется, | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | Для параллельного запуска экземпляров одной и той же версии сборки СУБД создадим отдельный новый файл службы под root. | + | |
- | < | + | |
- | sudo -i | + | |
- | cp / | + | |
- | nano / | + | |
- | </ | + | |
- | Редактируем новый файл службы, | + | |
- | < | + | |
- | Environment=PGDATA=/ | + | |
- | </ | + | |
- | Запустим новую службу | + | |
- | < | + | |
- | systemctl daemon-reload | + | |
- | systemctl enable --now tantor-be-server-16-data2 | + | |
- | systemctl status tantor-be-server-16-data2.service | + | |
- | </ | + | |
- | + | ||
- | ==== Ручной запуск инстанса СУБД без службы. ==== | + | |
- | + | ||
- | < | + | |
- | sudo su - postgres | + | |
- | + | ||
- | / | + | |
- | </ | + | |
- | Останавливаем | + | |
- | < | + | |
- | / | + | |
- | </ | + | |
- | посмотреть все возможности pg_ctl | + | |
- | < | + | |
- | / | + | |
- | </ | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | >!!! Если планируется установка нескольких версий сборок пакетов СУБД | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ==== Обновление СУБД tantor по мажорной версии на, пример с 15 на 16. ==== | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | >'' | + | |
- | >'' | + | |
- | >'' | + | |
- | + | ||
- | >В противном случае при проверке будут ошибки, | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | делаем логический бекап БД, '' | + | |
- | < | + | |
- | pg_dumpall -U postgres > backup.sql | + | |
- | </ | + | |
- | Установите пакет новой версии PostgreSQL c инициализацией новой БД процесс описан в начале файла. | + | |
- | инициализацию можно выполнить руками если вы просто установили пакет. | + | |
- | < | + | |
- | / | + | |
- | </ | + | |
- | обновите права на подкаталоги | + | |
- | < | + | |
- | chown -R postgres: | + | |
- | </ | + | |
- | останавливаем все СУБД (рекомендуется для больших баз) | + | |
- | < | + | |
- | systemctl stop tantor-* | + | |
- | </ | + | |
- | Проверьте совместимость кластеров | + | |
- | < | + | |
- | su - postgres | + | |
- | </ | + | |
- | < | + | |
- | / | + | |
- | --old-datadir / | + | |
- | --new-datadir / | + | |
- | --old-bindir / | + | |
- | --new-bindir / | + | |
- | --check | + | |
- | </ | + | |
- | === Вариант 1 Обновление СУБД через утилиту pg_upgrade. === | + | |
- | + | ||
- | Процесс скопирует данные из старого кластера в новый и настроит его для работы | + | |
- | < | + | |
- | / | + | |
- | --old-datadir / | + | |
- | --new-datadir / | + | |
- | --old-bindir / | + | |
- | --new-bindir / | + | |
- | </ | + | |
- | Если обновление успешно, | + | |
- | '' | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | > | + | |
- | > | + | |
- | >''/ | + | |
- | >При запуске этого скрипта будут удалены файлы данных старого кластера: | + | |
- | >'' | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | Перенесите настройки из старого postgresql.conf и pg_hba.conf в новый кластер, | + | |
- | + | ||
- | запускаем кластер | + | |
- | < | + | |
- | / | + | |
- | </ | + | |
- | обновляем статистику | + | |
- | < | + | |
- | / | + | |
- | </ | + | |
- | подключаемся к бд и проверяем | + | |
- | < | + | |
- | psql | + | |
- | select tantor_version(); | + | |
- | SELECT version(); | + | |
- | \l | + | |
- | \q | + | |
- | </ | + | |
- | удаляем старый кластер | + | |
- | < | + | |
- | ./ | + | |
- | </ | + | |
- | или вручную | + | |
- | < | + | |
- | rm -rf / | + | |
- | </ | + | |
- | удаляем старые пакеты | + | |
- | < | + | |
- | apt remove tantor-< | + | |
- | </ | + | |
- | === Вариант 2: pg_dump + pg_restore (если pg_upgrade недоступен из-за ошибо совместимости) === | + | |
- | + | ||
- | Перенесите настройки из '' | + | |
- | пример: | + | |
- | < | + | |
- | cd / | + | |
- | cp postgresql.conf postgresql.auto.conf pg_hba.conf / | + | |
- | </ | + | |
- | Запустите кластер новую версию СУБД | + | |
- | < | + | |
- | / | + | |
- | </ | + | |
- | Восстановите данные: | + | |
- | + | ||
- | > | + | |
- | < | + | |
- | psql -U postgres -f backup.sql | + | |
- | </ | + | |
- | проверяем что все базы на месте, подключаемся к бд и проверяем | + | |
- | < | + | |
- | psql | + | |
- | select tantor_version(); | + | |
- | SELECT version(); | + | |
- | \l | + | |
- | \q | + | |
- | </ | + | |
- | Если обновление успешно, | + | |
- | < | + | |
- | apt remove tantor-< | + | |
- | rm -rf / | + | |
- | </ | + | |
- | ==== Если нужно перенастроить переменные платформы / | + | |
- | например: | + | |
- | переходим в каталог | + | |
- | < | + | |
- | cd / | + | |
- | </ | + | |
- | останавливаем докеры | + | |
- | < | + | |
- | sudo docker-compose --env-file=platform.env down | + | |
- | </ | + | |
- | правим файл c переменными и сохраняем | + | |
- | < | + | |
- | nano platform.env | + | |
- | EMAIL_PORT= | + | |
- | EMAIL_USERNAME= | + | |
- | EMAIL_HOST= | + | |
- | EMAIL_PASSWORD= | + | |
- | </ | + | |
- | поднимаем контейнеры с новыми параметрами | + | |
- | < | + | |
- | docker-compose --env-file platform.env up -d | + | |
- | </ | + | |
- | проверяем платформу через браузер. | + | |
- | + | ||
- | + | ||
- | ===== удаление платформы ===== | + | |
- | < | + | |
- | sudo docker stop $(docker ps -aq) | + | |
- | sudo docker rm $(docker ps -aq) | + | |
- | sudo docker container prune | + | |
- | docker system prune -a | + | |
- | sudo docker rmi $(docker images -q) | + | |
- | sudo rm -rf / | + | |
- | </ | + | |
- | + | ||
- | ==== удаление СУБД и агента ==== | + | |
- | < | + | |
- | sudo apt purge tantor-be-server-16 | + | |
- | sudo rm -rf / | + | |
- | sudo rm -rf / | + | |
- | </ | + | |
- | < | + | |
- | sudo apt purge pmaagent | + | |
- | sudo rm -rf / | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |
vji/tantor1/start.1754041234.txt.gz · Последнее изменение: 2025/08/01 09:40 — vji