Инструменты пользователя

Инструменты сайта


vji:tantor1:start

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
vji:tantor1:start [2025/07/31 12:36] vjivji:tantor1:start [2025/08/01 10:38] (текущий) 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) +> **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)+> **haproxy1 haproxy2** -- для балансировщика по (2 cpu / 2гб ram / 20гб HDD)
  
----- 
  
->Для платформы Tantor обязательно домен второго уровня, так как при установке дистрибутива в запросах инсталятора будет просить DNS имя, которое после установки будет использоваться адрестной строке браузера для доступа к графическому интерфейса+> Для платформы Tantor обязательно домен второго уровня, так как при установке дистрибутива в запросах инсталятора будет просить DNS имя, которое после установки будет использоваться адрестной строке браузера для доступа к графическому интерфейса
  
-----+> Если планируете проходить практику на своем стенде, то для создания ВМ платформы Tantor обязательно используем host-passthrough в настройках ВМ гипервизора (прямой доступ к аппаратным ресурсам процессора) с доступам к инструкциям sse и avx.
  
->Если планируете проходить практику на своем стенде, то для создания ВМ платформы Tantor обязательно используем host-passthrough в настройках ВМ гипервизора (прямой доступ к аппаратным ресурсам процессора) с доступам к инструкциям sse и avx.+Иначе не заработает модуль Advanced analytics
  
->Иначе не заработает модуль Advanced analytics +> Как проверить что все хорошо - на вывод команд в CLI на хосте tplatform
- +
->Как проверить что все хорошо - на вывод команд в CLI на хосте tplatform +
- +
-----+
  
 Обе инструкции должны выводить ответ: Обе инструкции должны выводить ответ:
Строка 45: Строка 35:
 Далее с bastion подключаемся на хосты tplatform, db1, db2, db3, haproxy1, haproxy2 Далее с bastion подключаемся на хосты tplatform, db1, db2, db3, haproxy1, haproxy2
  
-----+> !!! В рамках практикума подключение без пароля к хостам внутри стенда можно выполнять только с bastion, между узлами недоступно.
  
->!!! В рамках практикума подключение без пароля к хостам внутри стенда можно выполнять только с bastion, между узлами недоступно. 
- 
----- 
 <code> <code>
 ssh tplatform ssh tplatform
Строка 68: Строка 55:
 Обычно он идет в комплекте с графическими окружениями Linux. Обычно он идет в комплекте с графическими окружениями Linux.
  
->NetworkManager включен, он может игнорировать interfaces.+> NetworkManager включен, он может игнорировать interfaces.
 <code> <code>
 nmcli device status nmcli device status
Строка 114: Строка 101:
 source /etc/network/interfaces.d/*.cfg source /etc/network/interfaces.d/*.cfg
 </code> </code>
- 
----- 
  
 Проверить синтаксис файла (опционально) без отключения loopback Проверить синтаксис файла (опционально) без отключения loopback
Строка 150: Строка 135:
 grep -r ^deb /etc/apt/sources.list /etc/apt/sources.list.d grep -r ^deb /etc/apt/sources.list /etc/apt/sources.list.d
 </code> </code>
-Для каждой версии ОС используются свои публичные интернет репозитории, читайте тех док к ОС.// +Для каждой версии ОС используются свои публичные интернет репозитории, читайте тех док к ОС. \\ 
-[[https://docs.astralinux.ru/1.7/guide/compound/repo]]// +[[https://docs.astralinux.ru/1.7/guide/compound/repo]] \\ 
-[[https://docs.astralinux.ru/1.8/guide/compound/repo]]//+[[https://docs.astralinux.ru/1.8/guide/compound/repo]] \\
 стандартные путь сслылок на публичные репозитории для ОС описаны тут: стандартные путь сслылок на публичные репозитории для ОС описаны тут:
 <code> <code>
Строка 162: Строка 147:
 </code> </code>
  
-----+> Как правило указаны frozen ветки /uu/* оперативного обновления для того, чтобы не произошло непреднамеренного обновление на самую последнюю версию ОС по ветке, которая может привести к не стабильной работе ПО Tantor. 
 +> для получения более свежего релиза пакетов достаточно сменить uu/1 на uu/2, сохранить. 
 +> В закрытом сегменте заказчика используются свои репозитории или ISO образы с личного кабинета Астра.
  
->Как правило указаны frozen ветки /uu/* оперативного обновления для того, чтобы не произошло непреднамеренного обновление на самую последнюю версию ОС по ветке, которая может привести к не стабильной работе ПО Tantor. 
->для получения более свежего релиза пакетов достаточно сменить uu/1 на uu/2, сохранить. 
->В закрытом сегменте заказчика используются свои репозитории или ISO образы с личного кабинета Астра. 
- 
----- 
 <code> <code>
 deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/2/extended-repository/ 1.8_x86-64 main non-free non-free-firmware contrib deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/2/extended-repository/ 1.8_x86-64 main non-free non-free-firmware contrib
Строка 228: Строка 210:
 sudo apt install htop iperf wget chrony nmap bash-completion -y sudo apt install htop iperf wget chrony nmap bash-completion -y
 </code> </code>
-## Зависимости нужны для Tantor СУБД на хостах db1 db2 db3 
-## sudo apt install libllvm13 libpython3.11 libxsldb1.1 libz3-4 lsof apt-transport-https gnupg -y 
-## При установке пакета СУБД Tantor их сам запросит и установит через сетевой репозиторий. 
  
-## На хосте tplatform устанавливаем графику и браузер, а также Docker не менее 20.10.13 версии+> Зависимости нужны для Tantor СУБД на хостах db1 db2 db3 
 +<code> 
 +sudo apt install libllvm13 libpython3.11 libxsldb1.1 libz3-4 lsof apt-transport-https gnupg -y 
 +</code> 
 +> При установке пакета СУБД Tantor их сам запросит и установит через сетевой репозиторий.
  
-sudo apt install docker.io docker-compose firefox xrdp fly-all-main -y 
- 
-## Проверить Docker версию на хосте tplatform 
  
 +На хосте tplatform устанавливаем графику и браузер, а также Docker не менее 20.10.13 версии
 +<code>
 +sudo apt install docker.io docker-compose firefox xrdp fly-all-main -y
 +</code>
 +Проверить Docker версию на хосте tplatform
 +<code>
 docker -v && docker-compose -v docker -v && docker-compose -v
- +</code> 
-## Полный вывод +Полный вывод 
 +<code>
 docker version docker version
 docker-compose version docker-compose version
 +</code>
  
-======================================================================================================== +==== Cлужба синхронизации времени, Выполняем на всех хостах. ====
-  Cлужба синхронизации времени, Выполняем на всех хостах. +
-======================================================================================================== +
- +
-## Ставим автозагрузку службы+
  
 +Ставим автозагрузку службы
 +<code>
 sudo systemctl enable chrony sudo systemctl enable chrony
- +</code> 
-## Проверка статуса +Проверка статуса 
 +<code>
 sudo systemctl status chrony sudo systemctl status chrony
 sudo chronyc tracking         ## проверка текущего состояния sudo chronyc tracking         ## проверка текущего состояния
 sudo chronyc sources -v       ## список NTP-серверов sudo chronyc sources -v       ## список NTP-серверов
 sudo chronyc makestep         ## немедленная корректировка времени sudo chronyc makestep         ## немедленная корректировка времени
 +</code>
  
-## В Chrony список серверов задаётся в конфигурационном файле /etc/chrony/chrony.conf +В Chrony список серверов задаётся в конфигурационном файле /etc/chrony/chrony.conf 
-## После редактирования перезапустит службу sudo systemctl restart chrony +После редактирования перезапустит службу sudo systemctl restart chrony 
 +<code>
 timedatectl                   ## вывести текущий часовой пояс и время timedatectl                   ## вывести текущий часовой пояс и время
 timedatectl list-timezones    ## вывести варианты ЧП timedatectl list-timezones    ## вывести варианты ЧП
 sudo timedatectl set-timezone <название_часового_пояса> sudo timedatectl set-timezone <название_часового_пояса>
 +</code>
  
-======================================================================================================== +==== Проверка сетевой доступности портов ====
-  Проверка сетевой доступности портов согласно таблице из презентации +
-  На узле СУБД утилита iperf запускается в режиме сервера (ключ -s), +
-  по умолчанию используется протокол TCP, выбран порт 5432 (ключ -p) +
-========================================================================================================+
  
-## Пример проверки порта запускаем iperf в режиме сервера на хостах СУБД db1 db2 db3+На узле СУБД утилита iperf запускается в режиме сервера (ключ -s), по умолчанию используется протокол TCP, выбран порт 5432 (ключ -p)
  
 +Пример проверки порта запускаем iperf в режиме сервера на хостах СУБД db1 db2 db3
 +<code>
 iperf -s -p 5432 iperf -s -p 5432
 +</code>
  
-## На tplatform запускается в режиме клиента (указывается узлы СУБД по очереди) +На tplatform запускается в режиме клиента (указывается узлы СУБД по очереди) 
 +<code>
 iperf -p 5432 -c db1 iperf -p 5432 -c db1
 iperf -p 5432 -c db2 iperf -p 5432 -c db2
 iperf -p 5432 -c db3 iperf -p 5432 -c db3
 +</code>
  
-  ## или через утилиту nmap: +или через утилиту nmap:
-  ## -sT  - проверка по протоколу TCP +
-  ## -p   - номер, проверяемого порта +
-  ## <IP адрес>   - адрес проверяемого узла +
-  ## Пример, проверяем доступность порта db1, команду выполняем например с узла tplatform+
  
 +> -sT  - проверка по протоколу TCP
 +> -p   - номер, проверяемого порта
 +> <IP адрес>   - адрес проверяемого узла
 +
 +
 +Пример, проверяем доступность порта db1, команду выполняем например с узла tplatform
 +<code>
 sudo nmap -sT -p 5432 db1 sudo nmap -sT -p 5432 db1
 sudo nmap -sT -p 5432 db2 sudo nmap -sT -p 5432 db2
 sudo nmap -sT -p 5432 db3 sudo nmap -sT -p 5432 db3
 +</code>
  
-## Посмотреть табличку с портами на каждом хосте, когда все развернете. +Посмотреть табличку с портами на каждом хосте, когда все развернете. 
 +<code>
 ss -ntlup ss -ntlup
 +</code>
  
-======================================================================================================== +===== (Этап 2) Подготовка=====
-(Этап 2)+
  
-  Скачиваем пакет СУБД Tantor и скрипт инсталятор  на db1 db2 db3. +Скачиваем пакет СУБД Tantor и скрипт инсталятор  на db1 db2 db3. 
-  https://docs.tantorlabs.ru/tdb/ru/16_6/be/binary-download-execute.html +[[https://docs.tantorlabs.ru/tdb/ru/16_6/be/binary-download-execute.html]]
-======================================================================================================== +
- +
-## Скачиваем скрипт установки через публичный репозиторий Tantor +
-## Будем работать под root, но можно также и через sudo+
  
 +Скачиваем скрипт установки через публичный репозиторий Tantor
 +Будем работать под root, но можно также и через sudo
 +<code>
 sudo -i sudo -i
 mkdir distr mkdir distr
Строка 312: Строка 302:
 wget https://public.tantorlabs.ru/db_installer.sh wget https://public.tantorlabs.ru/db_installer.sh
 chmod +x db_installer.sh chmod +x db_installer.sh
 +</code>
  
-## Если закрытый сегмент, скачиваем пакеты Платформы, +Если закрытый сегмент, скачиваем пакеты Платформы 
-## Tantor СУБД нужной версии и скрипт инсталяции предварительно на к себе носитель из:+Tantor СУБД нужной версии и скрипт инсталяции предварительно на к себе носитель из: 
 +[[https://lk.astralinux.ru]] 
  
-https://lk.astralinux.ru+be-версия Tantor СУБД для тестового использования можно скачать 
 +[[https://nexus-public.tantorlabs.ru]]
  
-## be-версия Tantor СУБД для тестового использования можно скачать+Устанавливаем пакет СУБД Tantor на db1 db2 db3. 
 +[[https://docs.tantorlabs.ru/tdb/ru/16_6/be/binary-download-execute.html]]
  
-https://nexus-public.tantorlabs.ru 
  
-======================================================================================================== +==== Установка через доступ интернета be-версия ====
-  Устанавливаем пакет СУБД Tantor на db1 db2 db3. +
-  https://docs.tantorlabs.ru/tdb/ru/16_6/be/binary-download-execute.html +
-======================================================================================================== +
- +
-  1. Установка через доступ интернета be-версия +
----------------------------------------------------------------- +
- +
-## Определим репозиторий+
  
 +Определим репозиторий
 +<code>
 export NEXUS_URL="nexus-public.tantorlabs.ru" export NEXUS_URL="nexus-public.tantorlabs.ru"
 +</code>
  
-## Установка из интернета через скрипт установки СУБД Tantor +Установка из интернета через скрипт установки СУБД Tantor 
-## Описание ключей можно посмотреть внутри скрипта +Описание ключей можно посмотреть внутри скрипта 
-## --do-initdb          инициализация инстанса СУБД разу после установки +--do-initdb          инициализация инстанса СУБД разу после установки 
-## --major-version=16   указываем мажорную версию СУБД +--major-version=16   указываем мажорную версию СУБД 
-## --edition=be         сборка be-версия+--edition=be         сборка be-версия
  
 +
 +<code>
 ./db_installer.sh \ ./db_installer.sh \
   --do-initdb \   --do-initdb \
   --major-version=16 \   --major-version=16 \
   --edition=be   --edition=be
 +</code>
  
-## Пример установки в фоновом режиме с выводом в лог файл +Пример установки в фоновом режиме с выводом в лог файл 
-## Конструкция в Linux системах "nohup ***** > install_tantor_be_serever.log 2>&1 &" +Конструкция в Linux системах ''"nohup ***** > install_tantor_be_serever.log 2>&1 &"'' 
-## Работает для любого выполнения команд или скриптов, +Работает для любого выполнения команд или скриптов, 
-## рекомендую изучить дополнительно через поиск в интернете работу с Linux CLI +рекомендую изучить дополнительно через поиск в интернете работу с Linux CLI 
 +<code>
 nohup ./db_installer.sh \ nohup ./db_installer.sh \
   --do-initdb \   --do-initdb \
   --major-version=16 \   --major-version=16 \
   --edition=be > install_tantor_be_serever.log 2>&1 &   --edition=be > install_tantor_be_serever.log 2>&1 &
- +</code> 
-## Чтение изменения лога в реальном времени +Чтение изменения лога в реальном времени 
 +<code>
 tail -1000f install_tantor_be_serever.log tail -1000f install_tantor_be_serever.log
 +</code>
  
----------------------------------------------------------------- +==== Способ установки локально, если закрытый сегмент. Предварительно копируем файлы с носителя на хосты по сети ====
-  2. Способ установки локально, если закрытый сегмент. +
-  Предварительно копируем файлы с носителя на хосты по сети +
----------------------------------------------------------------- +
- +
-## Пример копирования файлов на стенд из практикума +
-## Скачиваем файллы из личного кабинета астры https://lk.astralinux.ru +
-## к себе например в каталог /tmp +
-## Перейдите в каталог, куда скачали установочный пакет СУБД.+
  
 +Пример копирования файлов на стенд из практикума
 +Скачиваем файллы из личного кабинета астры [[https://lk.astralinux.ru]] к себе например в каталог /tmp \\
 +Перейдите в каталог, куда скачали установочный пакет СУБД.
 +<code>
 cd /tmp cd /tmp
- +</code> 
-## Копируем сначала на bastion в /tmp +Копируем сначала на bastion в /tmp 
 +<code>
 scp -i /home/test/.shh/00.key -P 2222 tantor-be-server-16_16.8.0_amd64.deb tantor@62.62.62.62:/tmp scp -i /home/test/.shh/00.key -P 2222 tantor-be-server-16_16.8.0_amd64.deb tantor@62.62.62.62:/tmp
 scp -i /home/test/.shh/00.key -P 2222 db_installer.sh tantor@62.62.62.62:/tmp scp -i /home/test/.shh/00.key -P 2222 db_installer.sh tantor@62.62.62.62:/tmp
- +</code> 
-## Далее подключившись по ssh на bastion и с него копируем на db1 db2 db3 +Далее подключившись по ssh на bastion и с него копируем на db1 db2 db3 
 +<code>
 ssh -i /home/test/.shh/00.key -p 2222 tantor@62.62.62.62 ssh -i /home/test/.shh/00.key -p 2222 tantor@62.62.62.62
 cd /tmp cd /tmp
Строка 386: Строка 374:
 scp tantor-be-server-16_16.8.0_amd64.deb tantor@db3:/tmp scp tantor-be-server-16_16.8.0_amd64.deb tantor@db3:/tmp
 scp db_installer.sh tantor@db2:/tmp scp db_installer.sh tantor@db2:/tmp
- +</code> 
-## Подключаемся через bastion к хостам db1, db2, db3 +Подключаемся через bastion к хостам db1, db2, db3 
 +<code>
 ssh db1 ssh db1
 sudo -i sudo -i
 cd /tmp cd /tmp
 chmod +x db_installer.sh chmod +x db_installer.sh
- +</code> 
-## Установка пакета через скрипт с инициализацией БД +Установка пакета через скрипт с инициализацией БД 
 +<code>
 ./db_installer.sh \ ./db_installer.sh \
 --from-file=/tmp/tantor-be-server-16_16.8.0_amd64.deb \ --from-file=/tmp/tantor-be-server-16_16.8.0_amd64.deb \
 --do-initdb --do-initdb
 +</code>
  
-======================================================================================================== +==== После установки пакета СУБД, назначаем права пользователя postgres на структуру каталогов на хостах  db1, db2, db3. ==== 
-  После установки пакета СУБД, +<code>
-  назначаем права пользователя postgres на структуру каталогов на хостах  db1, db2, db3. +
-======================================================================================================== +
 sudo chown -R postgres:postgres /var/lib/postgresql sudo chown -R postgres:postgres /var/lib/postgresql
 +</code>
 +Сменим пароль на УЗ postgres в операционной системе на хостах  db1, db2, db3 
  
-## Сменим пароль на УЗ postgres в операционной системе на хостах  db1, db2, db3 
-## запомните или запишите, далее пригодится при настройке модуля платформы Tantor 
- 
-sudo passwd postgres 
  
-## Посмотрим информацию о БД+> запомните или запишите, далее пригодится при настройке модуля платформы Tantor
  
 +<code>
 +sudo passwd postgres
 +</code>
 +Посмотрим информацию о БД
 +<code>
 sudo -iu postgres pg_controldata /var/lib/postgresql/tantor-be-16/data sudo -iu postgres pg_controldata /var/lib/postgresql/tantor-be-16/data
- +</code> 
-## посмотреть процесс работы инстанса +посмотреть процесс работы инстанса 
 +<code>
 sudo -iu postgres cat /var/lib/postgresql/tantor-be-16/data/postmaster.pid sudo -iu postgres cat /var/lib/postgresql/tantor-be-16/data/postmaster.pid
 sudo -iu postgres psql -c "SELECT pid, backend_type, backend_start FROM pg_stat_activity;" sudo -iu postgres psql -c "SELECT pid, backend_type, backend_start FROM pg_stat_activity;"
 +</code>
  
 +Допускается установка нескольких экземпляра разной версии СУБД на один узел.
 +При этом название экземпляров, используемые порты и расположение каталогов с данными должны быть разными.
  
-## Допускается установка нескольких экземпляра разной версии СУБД на один узел. +==== Проверка службы и автозагрузка сервиса СУБД Tantor====
-## При этом название экземпляров, используемые порты и +
-## расположение каталогов с данными должны быть разными.+
  
-======================================================================================================== 
-  Проверка службы и автозагрузка сервиса СУБД Tantor. 
-======================================================================================================== 
  
-## Ключи утилиты systemctl: +Ключи утилиты systemctl: 
-## status - показать запущен (loaded) сервис и его состояние (active) работает+status - показать запущен (loaded) сервис и его состояние (active) работает
  
 +<code>
 sudo systemctl enable tantor-be-server-16.service sudo systemctl enable tantor-be-server-16.service
 sudo systemctl status tantor-be-server-16.service sudo systemctl status tantor-be-server-16.service
- +</code> 
-## Посмотреть запущенные процессы +Посмотреть запущенные процессы 
 +<code>
 ps -efH | grep tantor ps -efH | grep tantor
- +</code> 
-## Проверка запуска сервиса СУБД Tantor по журналам +Проверка запуска сервиса СУБД Tantor по журналам 
-## Проверка осуществляется запуском утилиты journalctl с ключем -u , +Проверка осуществляется запуском утилиты journalctl с ключем -u , казывающим наименование сервиса, в нашем случае tantor-be-server-16.service. 
-## указывающим наименование сервиса, в нашем случае tantor-be-server-16.service. +<code>
 sudo journalctl -u tantor-be-server-16.service sudo journalctl -u tantor-be-server-16.service
 +</code>
  
-======================================================================================================== 
-  Настройка сетевых соединений к серверу СУБД производится в файлах 
-  параметров postgresql.conf и pg_hba.conf в соответствии с требованием заказчика. 
-  По умолчанию сетевые настройки в файле pg_hba.conf позволяют подключиться 
-  только суперпользователю postgres СУБД Tantor непосредственно с сервера через local unix socket. 
-  Для разрешения подключения с других узлов необходимо внести соответствующие 
-  строки в файлы pg_hba.conf и postgresql.conf. 
-  В конце листинга есть FAQ доп информация: 
-======================================================================================================== 
  
 +> Настройка сетевых соединений к серверу СУБД производится в файлах параметров **postgresql.conf** и **pg_hba.conf** в соответствии с требованием заказчика.
 +> По умолчанию сетевые настройки в файле pg_hba.conf позволяют подключиться только суперпользователю postgres СУБД Tantor непосредственно с сервера через **local unix socket**.
 +> Для разрешения подключения с других узлов необходимо внести соответствующие строки в файлы **pg_hba.conf** и postgresql.conf.
 +> В конце листинга есть **FAQ** доп информация:
  
-======================================================================================================== +===== (Этап 3)  Установка Платформы Tantor. =====
-(Этап 3)+
  
-  Установка Платформы Tantor. +Скачиваем и Распаковываем архив с Платформой Tantor. 
-======================================================================================================== +[[https://docs.tantorlabs.ru/tp/5.3/wizard.html]]
-  Скачиваем и Распаковываем архив с Платформой Tantor. +
-  https://docs.tantorlabs.ru/tp/5.3/wizard.html +
-========================================================================================================+
  
-  1. Способ при наличии доступа в интернет +==== Способ при наличии доступа в интернет ====
----------------------------------------------------------------- +
- +
-## Загрузим инсталлятор на хост tplatform согласно документации. +
-## Всегда смотрите новую версию по ссылке выше.+
  
 +Загрузим инсталлятор на хост tplatform согласно документации.
 +Всегда смотрите новую версию по ссылке выше.
 +<code>
 sudo -i sudo -i
 mkdir distr mkdir distr
 cd distr cd distr
 wget https://public.tantorlabs.ru/tantor-eco-5.3.0.tar.gz -O tantor-eco-5.3.0.tar.gz wget https://public.tantorlabs.ru/tantor-eco-5.3.0.tar.gz -O tantor-eco-5.3.0.tar.gz
- +</code> 
-## Распакуем из архива +Распакуем из архива 
 +<code>
 tar -xvf tantor-eco-5.3.0.tar.gz tar -xvf tantor-eco-5.3.0.tar.gz
 +</code>
  
-------------------------------------------------------------------------------- +==== Способ, если закрытый сектор, и вам дали доступ временно в сети заказчика. ====
-  2. Способ, если закрытый сектор, и вам дали доступ временно в сети заказчика. +
-------------------------------------------------------------------------------- +
- +
-## Скачиваем файллы из личного кабинета астры https://lk.astralinux.ru +
-## к себе например в каталог /tmp+
  
 +Скачиваем файллы из личного кабинета астры [[https://lk.astralinux.ru]] к себе например в каталог /tmp
 +<code>
 cd /tmp cd /tmp
 wget https://public.tantorlabs.ru/tantor-eco-5.3.0.tar.gz -O tantor-eco-5.3.0.tar.gz wget https://public.tantorlabs.ru/tantor-eco-5.3.0.tar.gz -O tantor-eco-5.3.0.tar.gz
- +</code> 
-## Пример копирования файлов на стенд tplatform из практикума +Пример копирования файлов на стенд tplatform из практикума 
-## Копируем сначала на bastion в /tmp +Копируем сначала на bastion в /tmp 
 +<code>
 scp -i /home/test/.shh/00.key -P 2222 tantor-eco-5.3.0.tar.gz tantor@62.62.62.62:/tmp scp -i /home/test/.shh/00.key -P 2222 tantor-eco-5.3.0.tar.gz tantor@62.62.62.62:/tmp
- +</code> 
-## Далее подключившись по ssh на bastion и с него копируем на tplatform +Далее подключившись по ssh на bastion и с него копируем на tplatform 
 +<code>
 ssh -i /home/test/.shh/00.key -p 2222 tantor@62.62.62.62 ssh -i /home/test/.shh/00.key -p 2222 tantor@62.62.62.62
 cd /tmp cd /tmp
 scp tantor-eco-5.3.0.tar.gz tantor@tplatform:/tmp scp tantor-eco-5.3.0.tar.gz tantor@tplatform:/tmp
- +</code> 
-## Далее с bastion хоста подключаемся на хост tplatform +Далее с bastion хоста подключаемся на хост tplatform 
 +<code>
 ssh tplatform ssh tplatform
 sudo -i sudo -i
 cd /tmp cd /tmp
 +</code>
 +Распакуем из архива
 +<code>
 +tar -xvf tantor-eco-5.3.0.tar.gz
 +</code>
  
-## Распакуем из архива+==== Инсталяция Платформы Tantor. ====
  
-tar -xvf tantor-eco-5.3.0.tar.gz 
  
-======================================================================================================== +[[https://docs.tantorlabs.ru/tp/5.3/wizard.html]]
-  Инсталяция Платформы Tantor. +
-  https://docs.tantorlabs.ru/tp/5.3/wizard.html +
-========================================================================================================+
  
-# Для установки Платформы на Astra Linux версии 1.8.2 
-# необходимо переключить уровень безопасности для docker на astra-sec-level-6 
  
 +Для установки Платформы на Astra Linux версии 1.8.2 необходимо переключить уровень безопасности для docker на astra-sec-level-6
 +<code>
 sudo mkdir -p /etc/docker/ sudo mkdir -p /etc/docker/
 sudo nano /etc/docker/daemon.json sudo nano /etc/docker/daemon.json
- +</code> 
-## Вставляем и сохраняем +Вставляем и сохраняем 
 +<code>
 { {
         "debug" : true,         "debug" : true,
         "astra-sec-level" : 6         "astra-sec-level" : 6
 } }
- +</code> 
-## Перезапускаем службу docker +Перезапускаем службу docker 
 +<code>
 sudo systemctl restart docker sudo systemctl restart docker
- +</code> 
-## Запуск установки из каталога, куда разархивировали данные: +Запуск установки из каталога, куда разархивировали данные: 
 +<code>
 sudo ./installer sudo ./installer
 +</code>
 +В ходе интерактивной установки будут запрошены данные:
 +^ Параметр ^ Значение ^ Описание ^ 
 +| **Tantor Platform administrator email:** | <admin@astralinux.ru> | Почтовый адрес администратора Платформы Tantor | 
 +| **Tantor Platform administrator name:** | <admin> | Имя администратора Платформы Tantor |
 +| **Tantor Platform domain name:** | <tplatform.example> | Доменное имя Платформы Tantor | 
 +| **SSL certificates match domain name**: | N | Cертификаты SSL для имени домена Платформы, если имеется у заказчика |
 +| **Сreate the self-signed certificates:** | Y | Если в предыдущем пункет N |
 +| **set integration with SMTP server:** | N | Настройки сервера почты в рамках практикума пропускаем |
  
-## В ходе интерактивной установки будут запрошены данные:+если бы указывали настройки сервера почты: 
 +^ Параметр ^ Описание ^ 
 +| **SMTP server domain name:** | доменное имя сервера электронной почты, если имеется, для практики не требуется | 
 +| **SMTP server domain name port** | порт сервера электронной почты | 
 +| **SMTP server user email** | имя постового ящика на который будут отправляться оповещения от Платформы Tantor | 
 +| **SMTP server user password** | пароль почтового ящика |
  
-Tantor Platform administrator email:  ## Почтовый адрес администратора Платформы Tantor, пример <admin@astralinux.ru> 
-Tantor Platform administrator name:   ## Имя администратора Платформы Tantor, пример            <admin> 
-Tantor Platform domain name:          ## Доменное имя Платформы Tantor, пример                  <tplatform.example> 
-SSL certificates match domain name:   N ## Cертификаты SSL для имени домена Платформы, если имеется у заказчика 
-Сreate the self-signed certificates:  Y ## Если в предыдущем пункет N 
-set integration with SMTP server:     N ## Настройки сервера почты в рамках практикума пропускаем 
  
-## если бы указывали настройки сервера почты+> Если не указали настройки почтыи после установки хотите до настроить, смотрите раздел "FAQ доп информация" в конце листинга.
-SMTP server domain name:       ## доменное имя сервера электронной почты, если имеется, для практики не требуется +
-SMTP server domain name port   ## порт сервера электронной почты +
-SMTP server user email         ## имя постового ящика на который будут отправляться оповещения от Платформы Tantor +
-SMTP server user password      ## пароль почтового ящика+
  
-## Если не указали настройки почты, и после установки хотите до настроить, +^ Параметр ^ Описание ^ 
-## смотрите раздел "FAQ доп информация" в конце листинга.+| **Which platform setup deployment you want to install? (1/2/3):** 3 | выбор конфигурации Платформы Tantor |
  
-Which platform setup deployment you want to install? (1/2/3): 3 ## выбор конфигурации Платформы Tantor 
  
-## ВАЖНО!!! После установки, скопировать password для смены пароль администратора .+ВАЖНО!!! После установки, скопировать ''password'' для смены пароль администратора .
  
-Tantor Platform version 5.3.0 is installed and running. 
-Please connect to Tantor Platform using: 
-Tantor Platform URL:                        https://tplatform.example 
-Tantor Platform  administrator email/login: admin@astralinux.ru 
-Tantor Platform  administrator password:    dCU18MzQbBWVcR7P 
  
-======================================================================================================== +''Tantor Platform version 5.3.0 is installed and running.'' \\ 
-  Подключение к Платформе, активация и настройка агента на узле сервера СУБД+''Please connect to Tantor Platform using:'' \\ 
-========================================================================================================+''Tantor Platform URL:                        https://tplatform.example'' \\ 
 +''Tantor Platform  administrator email/login: admin@astralinux.ru'' \\ 
 +''Tantor Platform  administrator password:    dCU18MzQbBWVcR7P'' \\
  
-Для стенда практикума подключаемся по RDP на хост tplatform и +==== Подключение к Платформе, активация и настройка агента на узле сервера СУБД====
-выполняем выше указанные действия в браузере. +
-Доступ по RDP на tplatform <внешний IP>:7389 +
-# login:  tplatform +
-# pass:   !@34%^78()test+
  
 +подключаемся по RDP на хост tplatform и выполняем выше указанные действия в браузере.
 +Доступ по RDP на tplatform <внешний IP>:7389 \\
 +''login:  tplatform'' \\
 +''pass:   !@34%^78()test''
  
-Первое подключение к Платформе с помощью браузера, смена пароля, +  * Первое подключение к Платформе с помощью браузера, смена пароля, 
-Согласиться с политикой лицензирования и нажать Ок +  Согласиться с политикой лицензирования и нажать Ок 
-Установить новый пароль суперпользователя Платформы +  Установить новый пароль суперпользователя Платформы 
-Зайти в тенант +  Зайти в тенант 
-Создать новое рабочее пространство New workspace (имя произвольно)+  Создать новое рабочее пространство New workspace (имя произвольно)
  
-======================================================================================================== +==== Проверки успешности установки и запуска сервисов Платформы. Состояние контейнеров Платформы можно посмотреть командами. ====
-  Проверки успешности установки и запуска сервисов Платформы. +
-  Состояние контейнеров Платформы можно посмотреть командами. +
-======================================================================================================== +
- +
-## Убедиться, что контейнеры Платформы запущены и работают (STATUS Up)+
  
 +Убедиться, что контейнеры Платформы запущены и работают (''STATUS Up'')
 +<code>
 docker ps docker ps
- +</code> 
-## Если необходимо перезагрузить платформу +Если необходимо перезагрузить платформу 
 +<code>
 cd /opt/tantor/eco/ cd /opt/tantor/eco/
 docker-compose stop docker-compose stop
 docker-compose start docker-compose start
 docker-compose ps docker-compose ps
- +</code> 
-## Порты на узле Платформы +Порты на узле Платформы 
 +<code>
 ss -ntlup ss -ntlup
 +</code>
  
-======================================================================================================== +==== Запуск утилиты диагностики для Платформы sdc-tantor, идет в комплекте архива. В случае неудачного завершения установки или обновления платформы. ====
-  Запуск утилиты диагностики для Платформы sdc-tantor, идет в комплекте архива. +
-  В случае неудачного завершения установки или обновления платформы. +
-  https://docs.tantorlabs.ru/tp/5.3/admin_diagnostic_utility.html +
-========================================================================================================+
  
 +[[https://docs.tantorlabs.ru/tp/5.3/admin_diagnostic_utility.html]]
 +
 +<code>
 cd distr cd distr
  
Строка 614: Строка 588:
  
 ./sdc-tantor ./sdc-tantor
 +</code>
 +Архив создан и сохранён в:
 +''sdc-report_tplatform_20250620_163622.tar.gz''
  
-## Архив создан и сохранён в: +Будет выполнен сбор системной конфигурации и диагностической информации в основном о работе докер контейнеров и информации о хосте. 
-## sdc-report_tplatform_20250620_163622.tar.gz +Приложите этот файл в созданную в техническую поддержку заявку.
-## Будет выполнен сбор системной конфигурации и диагностической информации +
-## в основном о работе докер контейнеров и информации о хосте. +
-## Приложите этот файл в созданную в техническую поддержку заявку.+
  
-======================================================================================================== +===== (этап 4) установка агента Tantor и последующем добавлении инстанса СУБД в платформу =====
-(этап 4)+
  
-  Для установки агента Tantor и последующем добавлении инстанса СУБД в платформу +Для установки агента Tantor и последующем добавлении инстанса СУБД в платформу необходимо перейти на сервер СУБД и произвести предложенные Платформой действия. 
-  необходимо перейти на сервер СУБД и произвести предложенные Платформой действия. +[[https://docs.tantorlabs.ru/tp/5.3/instance_adding.html]]
-  https://docs.tantorlabs.ru/tp/5.3/instance_adding.html+
  
-!! Установку агента всегда начинаем на лидере в кластере !! 
-======================================================================================================== 
  
-1. Открыть рабочее пространство в Платформе +> !! Установку агента всегда начинаем на лидере в кластере !!
-2. Добавить новый инстанс (сервер СУБД) Add instance +
-3. Выбрать тип инстанса (в наше примере Tantor) +
-4. Указать IP адрес, порт и имя БД +
-5. Платформа сообщает, что агент не установлен на выбранном инстансе и предлагает выбрать тип и версию ОС инстанса +
-6. Далее необходимо выполнить ряд предлагаемых Платформой действий на узле сервера СУБД, для исключения ошибки скопировать +
-каждое действие в буфер можно кликнув на пиктограмму в конце каждой строки.+
  
-## Узнаем IP адрес нашего сервера СУБД 
  
-ip a +  * Элемент ненумерованного спискаОткрыть рабочее пространство в Платформе 
- +  * Элемент ненумерованного спискаДобавить новый инстанс (сервер СУБД) Add instance 
-## пример вывода:+  * Элемент ненумерованного спискаВыбрать тип инстанса (в наше примере Tantor) 
 +  * Элемент ненумерованного спискаУказать IP адрес, порт и имя БД 
 +  * Элемент ненумерованного спискаПлатформа сообщает, что агент не установлен на выбранном инстансе и предлагает выбрать тип и версию ОС инстанса 
 +  * Элемент ненумерованного спискаДалее необходимо выполнить ряд предлагаемых Платформой действий на узле сервера СУБД, для исключения ошибки скопировать, **каждое** действие в буфер можно кликнув на пиктограмму в конце каждой строки.
  
 +Узнаем IP адрес нашего сервера СУБД
 +<code>
 +ip a
 +</code>
 +пример вывода:
 +<code>
 inet 10.2.0.11/24 brd 10.2.0.255 scope global eth0 inet 10.2.0.11/24 brd 10.2.0.255 scope global eth0
- +</code> 
-## Установка PMA агента Платформы Tantor при условии если везде вход по паролю +Установка PMA агента Платформы Tantor при условии если везде вход по паролю и через графический интерфейс команда не проходит, то установку делаем через доп ключи 
-## и через графический интерфейс команда не проходит, то установку делаем через доп ключи +читайте оф документацию [[https://docs.tantorlabs.ru/tp/5.3/ug_agents_config.html]] 
-## читайте оф документацию https://docs.tantorlabs.ru/tp/5.3/ug_agents_config.html +пример: 
-## пример: +<code>
 pmaagent configure --config_postgres_patroni -h 10.2.0.11 -p 5432 -d postgres -U postgres -W postgres -P 8008 -D pmaagent configure --config_postgres_patroni -h 10.2.0.11 -p 5432 -d postgres -U postgres -W postgres -P 8008 -D
- +</code> 
-## дополнительно смотрите тех документацию по ссылке выше, +дополнительно смотрите тех документацию по ссылке выше, а также ''help'' агента после его установки 
-## а также help агента после его установки +<code>
 pmaagent --help pmaagent --help
 pmaagent instances add --help pmaagent instances add --help
 +</code>
  
-======================================================================================================== +==== Проверка службы старта агента. ====
-  Проверка службы старта агента. +
-========================================================================================================+
  
 +<code>
 sudo systemctl daemon-reload sudo systemctl daemon-reload
 sudo systemctl start pmaagent.service sudo systemctl start pmaagent.service
 sudo systemctl status pmaagent.service sudo systemctl status pmaagent.service
 +</code>
  
-## Если нет связи с агентом, перезапустить демон агента +Если нет связи с агентом, перезапустить демон агента 
 +<code>
 systemctl stop pmaagent.service systemctl stop pmaagent.service
 systemctl start pmaagent.service systemctl start pmaagent.service
 +</code>
 +Конфиг агента \\
 +''/var/lib/pma/agent/agent.yml'' \\
 +Лог агента \\
 +''/var/lib/pma/agent/logs/pmaagent.log''
  
-## Конфиг агента+==== Установка дополнительных элементов для взаимодействия Птатформы и СУБД. (расширений / EXTENSION в СУБД Tantor)(pg_stat_statements, pg_store_plans, Advanced analytics) ====
  
-/var/lib/pma/agent/agent.yml +[[https://docs.tantorlabs.ru/tp/5.3/pg_monitor_installation.html]]
- +
-## Лог агента +
- +
-/var/lib/pma/agent/logs/pmaagent.log +
- +
-======================================================================================================== +
-  Установка дополнительных элементов для взаимодействия Птатформы и СУБД. +
-  (расширений / EXTENSION в СУБД Tantor) +
-  (pg_stat_statements, pg_store_plans, Advanced analytics) +
-  https://docs.tantorlabs.ru/tp/5.3/pg_monitor_installation.html +
-======================================================================================================== +
- +
-## Для работы Advanced analytics, создание ключей RSA под root на сервере tplatform+
  
 +Для работы Advanced analytics, создание ключей RSA под root на сервере tplatform
 +<code>
 sudo -i sudo -i
 ssh-keygen -t rsa ssh-keygen -t rsa
- +</code> 
-## Скопируйте в нужные директории созданные ключи следующей командой: +Скопируйте в нужные директории созданные ключи следующей командой: 
 +<code>
 cp /root/.ssh/id_rsa* /opt/tantor/eco/ssh/ cp /root/.ssh/id_rsa* /opt/tantor/eco/ssh/
- +</code> 
-## Скопируйте созданный публичный ключ на сервер базы данных, выполнив следующую команду: +Скопируйте созданный публичный ключ на сервер базы данных, выполнив следующую команду: 
 +<code>
 ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db1 ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db1
 ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db2 ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db2
 ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db3 ssh-copy-id -i /opt/tantor/eco/ssh/id_rsa postgres@db3
- +</code> 
-## Проверьте возможность зайти на сервер базы данных с помощью добавленного ключа: +Проверьте возможность зайти на сервер базы данных с помощью добавленного ключа: 
 +<code>
 ssh postgres@db1 ssh postgres@db1
 ssh postgres@db2 ssh postgres@db2
 ssh postgres@db3 ssh postgres@db3
 +</code>
  
-======================================================================================================== +==== Настройка параметров и расширений / EXTENSION на наблюдаемой СУБД: pg_stat_statements, pg_store_plans, Advanced analytics. ====
-  Настройка параметров и расширений / EXTENSION на наблюдаемой СУБД: +
-  pg_stat_statements, pg_store_plans, Advanced analytics.+
  
-  Текущий вариант через "alter system set", создаст отдельный файл +----
-  /var/lib/postgresql/tantor-be-16/data/postgresql.auto.conf , +
-  который будет преобладать в приоритете при запуске СУБД над файлом postgresql.conf, +
-  что очень удобно, если мы хотим отделить изменяемые параметры от дефолтных. +
-  Данный способ работает только в рамках текущего сервера СУБД в standalone.+
  
-  В отказоустойчивых кластерах типа Patroniнеобходимо использовать единую конфигурацию для всех узлов. +> Текущий вариант через "alter system set", создаст отдельный файл /var/lib/postgresql/tantor-be-16/data/postgresql.auto.conf который будет преобладать в приоритете при запуске СУБД над файлом postgresql.conf, что очень удобно, если мы хотим отделить изменяемые параметры от дефолтных. 
-  Также данные настройки можно применить с помощью Платформы через модуль Конфигурации. +> Данный способ работает только в рамках текущего сервера СУБД в standalone.
-========================================================================================================+
  
-## Подключаемся к одному из серверов, где установлена СУБД Tantor, например db1 +> В отказоустойчивых кластерах типа Patroni, необходимо использовать единую конфигурацию для всех узлов. 
-## В дальнейшем эти операции нужно выполнить на каждой наблюдаемой БД.+> Также данные настройки можно применить с помощью Платформы через модуль Конфигурации.
  
-sudo -iu postgres psql 
- 
-## Выполняем команды на создание расширений и параметров: 
-## Если в параметре shared_preload_libraries уже указаны другие расширения, 
-## то добавить pg_stat_statements, pg_store_plans через запятую. 
  
 +Подключаемся к одному из серверов, где установлена СУБД Tantor, например db1
 +В дальнейшем эти операции нужно выполнить на каждой наблюдаемой БД.
 +<code>
 +sudo -iu postgres psql
 +</code>
 +Выполняем команды на создание расширений и параметров:
 +Если в параметре ''shared_preload_libraries'' уже указаны другие расширения, то добавить ''pg_stat_statements, pg_store_plans'' через запятую.
 +<code>
 create EXTENSION pg_stat_statements; create EXTENSION pg_stat_statements;
 create EXTENSION pg_store_plans; create EXTENSION pg_store_plans;
Строка 745: Строка 707:
 alter system set log_destination = 'stderr'; alter system set log_destination = 'stderr';
 alter system set log_statement = 'all'; alter system set log_statement = 'all';
- +</code> 
-## Перезагрузка СУБД и проверка сервиса СУБД, должно быть active (running) +Перезагрузка СУБД и проверка сервиса СУБД, должно быть ''active (running)'' 
 +<code>
 sudo systemctl restart tantor-be-server-16.service sudo systemctl restart tantor-be-server-16.service
 sudo systemctl status tantor-be-server-16.service sudo systemctl status tantor-be-server-16.service
- +</code> 
-## Добавляем параметры auto_explain +Добавляем параметры auto_explain 
 +<code>
 sudo -iu postgres psql sudo -iu postgres psql
 +</code> 
 +<code>
 alter system set pg_store_plans.min_duration = 1000; alter system set pg_store_plans.min_duration = 1000;
 alter system set auto_explain.log_min_duration = 1000; alter system set auto_explain.log_min_duration = 1000;
Строка 761: Строка 724:
 alter system set auto_explain.log_buffers = on; alter system set auto_explain.log_buffers = on;
 SELECT pg_reload_conf(); SELECT pg_reload_conf();
- +</code> 
-## Сколько параметров установлено в файлах параметров конфигурации +Сколько параметров установлено в файлах параметров конфигурации 
 +<code>
 select sourcefile, count(*) from pg_settings group by sourcefile; select sourcefile, count(*) from pg_settings group by sourcefile;
- +</code> 
-## Какие параметры из каких файлов конфигурации были считаны и применены при запуске экземпляра +Какие параметры из каких файлов конфигурации были считаны и применены при запуске экземпляра 
-## Так же через этот вывод можно проверить себя, правильно ли вы задали параметры до перезагрузки СУБД. +Так же через этот вывод можно проверить себя, правильно ли вы задали параметры до перезагрузки СУБД. 
 +<code>
 select name, setting, substring(sourcefile, 39) file, sourceline, applied from pg_file_settings; select name, setting, substring(sourcefile, 39) file, sourceline, applied from pg_file_settings;
- +</code> 
-## Для корректной работы модуля Advanced Analytics +Для корректной работы модуля ''Advanced Analytics'' 
-## требуется добавить следующее разрешение в файле pg_hba.conf: +требуется добавить следующее разрешение в файле ''pg_hba.conf''
 +<code>
 nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf
- +</code> 
----------------------------------------------------------------------- +<code> 
-host    postgres        postgres        127.0.0.1/32            trust +host     postgres         postgres         127.0.0.1/32             trust 
----------------------------------------------------------------------- +</code> 
- +Чтобы новые параметры ''pg_hba.conf'' применились, выполните: 
-## Чтобы новые параметры pg_hba.conf применились, выполните: +<code>
 sudo -iu postgres psql -c "SELECT pg_reload_conf();" sudo -iu postgres psql -c "SELECT pg_reload_conf();"
-    ## или restart наблюдаемой СУБД.+</code> 
 +или ''restart'' наблюдаемой СУБД. 
 +<code>
 sudo systemctl restart tantor-be-server-16.service sudo systemctl restart tantor-be-server-16.service
- +</code> 
-## Чтобы изменения вступили в силу для Advanced analytics, на сервере tplatform перезапустите контейнер +Чтобы изменения вступили в силу для Advanced analytics, на сервере tplatform перезапустите контейнер 
 +<code>
 docker restart pg_monitor_collector docker restart pg_monitor_collector
 +</code>
 +Посмотрите результат в Платформе, обновив страницу Overview с открытым инстансом БД в браузере.
 +Должны появится графики \\
 +В модуле ''Advanced analytics'' инстансом БД также должны появиться данные
  
-## Посмотрите рузултат в Платформе, обновив страницу Overview с открытым инстансом БД в браузере +==== Ротация и очистка логов СУБД Tantor ''/var/lib/postgresql/tantor-be-16/data/log.'' ====
-## Должны появится графики +
-## В модуле Advanced analytics инстансом БД также должны появиться данные +
- +
-======================================================================================================== +
-  Ротация и очистка логов СУБД Tantor /var/lib/postgresql/tantor-be-16/data/log. +
-======================================================================================================== +
- +
-## Эти параметры уже заданы, при необходимости измените под требования заказчика. +
-## Для просмотра или изменения можно использовать Платформу Tantor +
-## или командами в psql: +
-## alter system set <параметр = значение>;  -- изменить +
-## show <параметр>;                         -- посмотреть+
  
 +Эти параметры уже заданы, при необходимости измените под требования заказчика.
 +Для просмотра или изменения можно использовать Платформу Tantor или командами в psql: \\
 +''alter system set <параметр = значение>;  -- изменить'' \\
 +''show <параметр>;                         -- посмотреть''
 +<code>
 logging_collector = on              # Включение сбора логов logging_collector = on              # Включение сбора логов
 log_directory = 'log'               # Директория для логов (относительно PGDATA) log_directory = 'log'               # Директория для логов (относительно PGDATA)
Строка 809: Строка 770:
 log_rotation_age = 1d               # Ротация ежедневно log_rotation_age = 1d               # Ротация ежедневно
 log_rotation_size = 10MB            # Или при достижении размера log_rotation_size = 10MB            # Или при достижении размера
- +</code> 
-## Посмотреть логи по примеру, имя файла у вас будет свой: +Посмотреть логи по примеру, имя файла у вас будет свой: 
 +<code>
 less /var/lib/postgresql/tantor-be-16/data/log/postgresql-2023-10-01_135334.log less /var/lib/postgresql/tantor-be-16/data/log/postgresql-2023-10-01_135334.log
- +</code> 
-## Даем привилегии УЗ postgres на использование crontab +Даем привилегии УЗ postgres на использование crontab 
 +<code>
 sudo usermod -aG crontab postgres sudo usermod -aG crontab postgres
- +</code> 
-## Логинимся под УЗ postgres +Логинимся под УЗ postgres 
 +<code>
 su - postgres su - postgres
- +</code> 
-## Создаем скрипт очистки +Создаем скрипт очистки 
-## Вставляем строки, скрипт будет искать файлы с расширением и удалять, оставляя за последние 14 дней. +Вставляем строки, скрипт будет искать файлы с расширением и удалять, оставляя за последние 14 дней. 
-## Не забудьте указать правильный путь на ваши логи. +Не забудьте указать правильный путь на ваши логи. 
 +<code>
 nano cleanup_logs.sh nano cleanup_logs.sh
- +</code> 
------------------------------------------------------------------------------------------------+<code>
 #!/bin/bash #!/bin/bash
 find /var/lib/postgresql/tantor-be-16/data/log/ -type f -name "*.log" -mtime +14 -exec rm {} \; find /var/lib/postgresql/tantor-be-16/data/log/ -type f -name "*.log" -mtime +14 -exec rm {} \;
 find /var/lib/postgresql/tantor-be-16/data/log/ -type f -name "*.csv" -mtime +14 -exec rm {} \; find /var/lib/postgresql/tantor-be-16/data/log/ -type f -name "*.csv" -mtime +14 -exec rm {} \;
------------------------------------------------------------------------------------------------ +</code> 
- +Применяем бит исполнения файла скрипта 
-## Применяем бит исполнения файла скрипта +<code>
 chmod +x cleanup_logs.sh chmod +x cleanup_logs.sh
- +</code> 
-## Вставляем задание на выполнение в cron, сохраняем и проверяем. +Вставляем задание на выполнение в cron, сохраняем и проверяем. 
 +<code>
 crontab -e crontab -e
- +</code> 
-------------------------------------------------------------------------------- +<code>0 0 * * * /var/lib/postgresql/cleanup_logs.sh  ## выполнение раз в день в 0:00 
-0 0 * * * /var/lib/postgresql/cleanup_logs.sh  ## выполнение раз в день в 0:00 +</code> 
-------------------------------------------------------------------------------- +проверяем, что запись добавилась 
- +<code>
-## проверяем, что запись добавилась +
 crontab -l crontab -l
 +</code>
  
-======================================================================================================== +===== (этап 5) Настройка репликации встроенными инструментами СУБД (ручной Failover/Switchover). =====
-(этап 5 по желанию) +
- +
-  Настройка репликации встроенными инструментами СУБД (ручной Failover/Switchover). +
-========================================================================================================+
  
-  Выполняется на Master db1 10.2.0.11 : +Выполняется на Master db1 10.2.0.11 :
------------------------------------------------------ +
- +
-## Создадим отдельного пользователя для репликации repl - имя пользователя+
  
 +Создадим отдельного пользователя для репликации repl - имя пользователя
 +<code>
 sudo -iu postgres psql sudo -iu postgres psql
 CREATE ROLE repl WITH REPLICATION LOGIN ENCRYPTED PASSWORD '12345678'; CREATE ROLE repl WITH REPLICATION LOGIN ENCRYPTED PASSWORD '12345678';
-\password  ## сменим пароль на УЗ postgres внутри СУБД Tantor (пример пароль postgres)+\password  # сменим пароль на УЗ postgres внутри СУБД Tantor (пример пароль postgres) 
 +</code> 
 +Правим строчку в pg_hba, тут со стороны заказчика нужно указать, что куда добавить 
 +Правило подключения, если необходимо. Не всегда это нужно в рамках тестового пилота, 
 +Можно оставить так.
  
-## Правим строчку в pg_hba, тут со стороны заказчика нужно указать, что куда добавить 
-## Правило подключения, если необходимо. Не всегда это нужно в рамках тестового пилота, 
-## Можно оставить так. 
  
-## !!! +!!! чтобы не мучиться с корректировкой настроек после ''pg_rewind'', для repl можно указать всю подсеть ''10.2.0.0/24''
-## чтобы не мучиться с корректировкой настроек после pg_rewind, для repl можно указать всю подсеть 10.2.0.0/24+
  
 +<code>
 sudo nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf sudo nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf
- +</code> 
----------------------------------------------------------------------------+<code>
 host    replication     repl         10.2.0.12/32            scram-sha-256 host    replication     repl         10.2.0.12/32            scram-sha-256
 host    all             all          0.0.0.0/              scram-sha-256 host    all             all          0.0.0.0/              scram-sha-256
---------------------------------------------------------------------------- +</code> 
- +Добавляем параметры, ''ip'' адрес ''Master'' сервера в настройку инстанса 
-## Добавляем параметры, ip адрес Master сервера в настройку инстанса +<code>
 nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf
-  ## или через psql, параметры запишутся в postgresql.auto.conf+</code> 
 +или через ''psql'', параметры запишутся в ''postgresql.auto.conf'' 
 +<code>
 sudo -iu postgres psql sudo -iu postgres psql
 +</code> 
 +<code>
 alter system set listen_addresses = 'localhost, 10.2.0.11'; -- можно '*', чтобы не перенастраивать после pg_rewind alter system set listen_addresses = 'localhost, 10.2.0.11'; -- можно '*', чтобы не перенастраивать после pg_rewind
 alter system set wal_level = replica; alter system set wal_level = replica;
Строка 896: Строка 853:
 alter system set max_replication_slots = 10; alter system set max_replication_slots = 10;
 alter system set wal_keep_size = '1GB';  -- или больше, в зависимости от требований alter system set wal_keep_size = '1GB';  -- или больше, в зависимости от требований
- +</code> 
-## После внесение изменений перезапускаем сервис +После внесение изменений перезапускаем сервис 
 +<code>
 sudo systemctl restart tantor-be-server-16.service sudo systemctl restart tantor-be-server-16.service
 +</code>
  
------------------------------------------------------ 
-  Выполняем на Replica сервере db2 10.2.0.12 : 
------------------------------------------------------ 
  
 +> Выполняем на ''Replica'' сервере ''db2'' ''10.2.0.12'' :
 +
 +<code>
 systemctl stop tantor-be-server-16.service systemctl stop tantor-be-server-16.service
 su - postgres su - postgres
 cd /var/lib/postgresql/tantor-be-16/ cd /var/lib/postgresql/tantor-be-16/
- +</code> 
-## Сохраним архивную копию папки data если потребуется для восстановления или удаляем +Сохраним архивную копию папки ''data'' если потребуется для восстановления или удаляем 
 +<code>
 tar -cvzf main_backup-`date +%s`.tgz data tar -cvzf main_backup-`date +%s`.tgz data
 rm -rf data/ rm -rf data/
- +</code> 
-## Переносим папку data c Master сервера на Реплику с созданием слота репликации -C -S db2_replica: +Переносим папку ''data'' ''Master'' сервера на Реплику с созданием слота репликации ''-C -S db2_replica''
 +<code>
 export PGAPPNAME=db2 export PGAPPNAME=db2
 pg_basebackup -h db1 -U repl -p 5432 -D data -R -X stream -C -S db2_replica -c fast -P pg_basebackup -h db1 -U repl -p 5432 -D data -R -X stream -C -S db2_replica -c fast -P
-  ## PASSWORD '12345678' +</code> 
- +>''PASSWORD '12345678'''
-## Проверяем, появилась ли data каталог+
  
 +Проверяем, появилась ли data каталог
 +<code>
 ls -la data/ ls -la data/
- +</code> 
-## Исправим на правильный listen_addresses +Исправим на правильный listen_addresses 
-## Если указывали listen_addresses = '*', то не нужно +Если указывали ''listen_addresses = '*''', то не нужно 
 +<code>
 nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf
-  ## или+</code> 
 +или 
 +<code>
 nano /var/lib/postgresql/tantor-be-16/data/postgresql.auto.conf nano /var/lib/postgresql/tantor-be-16/data/postgresql.auto.conf
- +</code> 
-  listen_addresses = 'localhost, 10.2.0.12' +<code> 
- +listen_addresses = 'localhost, 10.2.0.12' 
-## Корректируем правило в pg_hba.conf, для того чтобы после смены лидера, +</code> 
-## db1 смог подключаться к db2. +Корректируем правило в ''pg_hba.conf'', для того чтобы после смены лидера, ''db1'' смог подключаться к ''db2''
-## Если указывали 10.2.0.0/24, то не нужно. +Если указывали 10.2.0.0/24, то не нужно. 
 +<code>
 nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf
----------------------------------------------------------------------------+</code> 
 +<code>
 host    replication     repl         10.2.0.11/32            scram-sha-256 host    replication     repl         10.2.0.11/32            scram-sha-256
---------------------------------------------------------------------------- +</code> 
- +Запустим сервис 
-## Запустим сервис +<code>
 sudo systemctl start tantor-be-server-16.service sudo systemctl start tantor-be-server-16.service
 sudo systemctl status tantor-be-server-16.service sudo systemctl status tantor-be-server-16.service
- +</code> 
-## На мастере db1 10.2.0.11 проверить реплику +На мастере ''db1 10.2.0.11'' проверить реплику 
 +<code>
 sudo -iu postgres psql -c "select client_addr, usename, application_name, state, sync_state, sent_lsn, write_lsn, flush_lsn, replay_lsn from pg_stat_replication;" sudo -iu postgres psql -c "select client_addr, usename, application_name, state, sync_state, sent_lsn, write_lsn, flush_lsn, replay_lsn from pg_stat_replication;"
- +</code> 
-## На реплике db2 10.2.0.12 , вывод должен быть true +На реплике ''db2 10.2.0.12'' , вывод должен быть true 
 +<code>
 sudo -iu postgres psql -c "select status,sender_host,sender_port, slot_name from pg_stat_wal_receiver; sudo -iu postgres psql -c "select status,sender_host,sender_port, slot_name from pg_stat_wal_receiver;
 SELECT pg_is_in_recovery();" SELECT pg_is_in_recovery();"
- +</code> 
-## Проверим репликацию, создадим сущность данных в СУБД на мастере db1 10.2.0.11 +Проверим репликацию, создадим сущность данных в СУБД на мастере db1 10.2.0.11 
 +<code>
 sudo -iu postgres psql -c "create database tesdb2;" sudo -iu postgres psql -c "create database tesdb2;"
- +</code> 
-## Проверим на реплике db2 10.2.0.12 +Проверим на реплике db2 10.2.0.12 
 +<code>
 sudo -iu postgres psql -c "\l" sudo -iu postgres psql -c "\l"
 +</code>
 +==== Смена лидера. (меняем роли местами мастер -> реплику). ====
  
-======================================================================================================== +Проверить статус репликации на ''db2 10.2.0.12'' 
-  Смена лидера. (меняем роли местами мастер -> реплику). +Должно вернуть ''true'' (реплика в режиме восстановления) 
-======================================================================================================== +<code>
- +
-## Проверить статус репликации на db2 10.2.0.12 +
-## Должно вернуть true (реплика в режиме восстановления) +
 sudo -iu postgres psql sudo -iu postgres psql
 SELECT pg_is_in_recovery(); SELECT pg_is_in_recovery();
- +</code> 
-## Проверить отставание на db2 10.2.0.12 +Проверить отставание на ''db2 10.2.0.12'' 
 +<code>
 SELECT pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn(), pg_last_xact_replay_timestamp(); SELECT pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn(), pg_last_xact_replay_timestamp();
- +</code> 
-## смотрим статус синхронизации на мастере db1 10.2.0.11 +смотрим статус синхронизации на мастере ''db1 10.2.0.11'' 
 +<code>
 sudo -iu postgres psql sudo -iu postgres psql
 \x \x
 SELECT * FROM pg_stat_replication; SELECT * FROM pg_stat_replication;
 +</code>
  
-## Перед переключением мастера на реплику, рекомендуется остановить режим 
-## записи СУБД на мастере db1, чтобы избежать потери данных. Это можно сделать с помощью команды: 
  
 +>Перед переключением мастера на реплику, рекомендуется остановить режим записи СУБД на мастере db1, чтобы избежать потери данных.
 +
 +Это можно сделать с помощью команды:
 +<code>
 ALTER SYSTEM SET default_transaction_read_only = ON; ALTER SYSTEM SET default_transaction_read_only = ON;
 SELECT pg_reload_conf(); SELECT pg_reload_conf();
- +</code> 
-## На реплике выполните db2 10.2.0.12 +На реплике выполните ''db2 10.2.0.12'' 
-## Относительно видео - скорректировано создание слота репликации db1_replica +Относительно видео - скорректировано создание слота репликации ''db1_replica'' 
 +<code>
 SELECT pg_promote(); SELECT pg_promote();
 SELECT pg_is_in_recovery();   ## Должно быть `false` (теперь это мастер) SELECT pg_is_in_recovery();   ## Должно быть `false` (теперь это мастер)
 SELECT * FROM pg_create_physical_replication_slot('db1_replica'); ## создать слот репликации для новой реплики SELECT * FROM pg_create_physical_replication_slot('db1_replica'); ## создать слот репликации для новой реплики
 SELECT slot_name, slot_type FROM pg_replication_slots;  ## проверим что новый слот создался SELECT slot_name, slot_type FROM pg_replication_slots;  ## проверим что новый слот создался
- +</code> 
-## Остановить сервис tantor на мастере db1 10.2.0.11 +Остановить сервис ''tantor'' на мастере ''db1 10.2.0.11'' 
 +<code>
 sudo systemctl stop tantor-be-server-16.service sudo systemctl stop tantor-be-server-16.service
- +</code> 
-## выполняем догон db1 10.2.0.11 , новой реплики относительно нового мастера. +выполняем догон ''db1 10.2.0.11'' , новой реплики относительно нового мастера. \\ 
-## Делаем pg_rewind под УЗ postgres, так как пользователь должен иметь права с доступом к функции pg_read_binary_file. +Делаем ''pg_rewind'' под УЗ ''postgres'', так как пользователь должен иметь права с доступом к функции ''pg_read_binary_file''\\ 
-##    либо при создании УЗ repl дать привилегии, если планируете использовать ее для pg_rewind. +либо при создании УЗ ''repl'' дать привилегии, если планируете использовать ее для ''pg_rewind''\\ 
-## GRANT EXECUTE ON FUNCTION pg_read_binary_file(text, bigint, bigint, boolean) TO repl; +''GRANT EXECUTE ON FUNCTION pg_read_binary_file(text, bigint, bigint, boolean) TO repl;'' \\ 
-## В PostgreSQL доступ к функции pg_read_binary_file ограничен по соображениям безопасности, +В PostgreSQL доступ к функции pg_read_binary_file ограничен по соображениям безопасности, так как она позволяет читать произвольные файлы на сервере. 
-## так как она позволяет читать произвольные файлы на сервере. +Обычно только суперпользователи (superuser) имеют к ней доступ. 
-## Обычно только суперпользователи (superuser) имеют к ней доступ. +<code>
 su - postgres su - postgres
 pg_rewind --target-pgdata=/var/lib/postgresql/tantor-be-16/data --source-server="host=db2 port=5432 user=postgres dbname=postgres password=postgres" -P pg_rewind --target-pgdata=/var/lib/postgresql/tantor-be-16/data --source-server="host=db2 port=5432 user=postgres dbname=postgres password=postgres" -P
- +</code> 
-## Создайте файл standby.signal db1 10.2.0.11 +Создайте файл ''standby.signal db1 10.2.0.11'' 
 +<code>
 touch /var/lib/postgresql/tantor-be-16/data/standby.signal touch /var/lib/postgresql/tantor-be-16/data/standby.signal
 rm -f /var/lib/postgresql/tantor-be-16/data/postmaster.pid  ## на всякий случай rm -f /var/lib/postgresql/tantor-be-16/data/postmaster.pid  ## на всякий случай
- +</code> 
-## Настроить старый мастер db1 10.2.0.11 как новую реплику. +Настроить старый мастер db1 10.2.0.11 как новую реплику. 
-## Отредактируем строчки в файле +Отредактируем строчки в файле \\ 
-## primary_slot_name = 'db1_replica' +''primary_slot_name = 'db1_replica''' \\ 
-## host=db2 , application_name=db1 +''host=db2 , application_name=db1'' 
 +<code>
 nano /var/lib/postgresql/tantor-be-16/data/postgresql.auto.conf nano /var/lib/postgresql/tantor-be-16/data/postgresql.auto.conf
 +</code>
  
--------------------------------------------------------------------------------------------------------- 
-primary_conninfo = 'user=repl password=12345678 channel_binding=prefer host=db2 port=5432 application_name=db1 sslmode=prefer sslcompression=0 sslcertmode=allow sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres gssdelegation=0 target_session_attrs=any load_balance_hosts=disable' 
  
-primary_slot_name = 'db1_replica' +> primary_conninfo = 'user=repl password=12345678 channel_binding=prefer host=db2 port=5432 application_name=db1 sslmode=prefer sslcompression=0 sslcertmode=allow sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres gssdelegation=0 target_session_attrs=any load_balance_hosts=disable' 
---------------------------------------------------------------------------------------------------------+primary_slot_name = 'db1_replica'
  
-## Корректируем правило в pg_hba.conf, для того чтобы после смены лидера, 
-## db2 смог подключаться к db1. 
-## Если указывали 10.2.0.0/24, то не нужно. 
  
 +Корректируем правило в ''pg_hba.conf'', для того чтобы после смены лидера, ''db2'' смог подключаться к ''db1''.
 +Если указывали ''10.2.0.0/24'', то не нужно.
 +<code>
 nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf
- +</code> 
----------------------------------------------------------------------------+<code>
 host    replication     repl         10.2.0.12/32            scram-sha-256 host    replication     repl         10.2.0.12/32            scram-sha-256
---------------------------------------------------------------------------- +</code> 
- +Запустить сервис ''tantor'' на  ''db1 10.2.0.11'' 
-## Запустить сервис tantor на  db1 10.2.0.11 +<code>
 sudo systemctl start tantor-be-server-16.service sudo systemctl start tantor-be-server-16.service
- +</code> 
-## Проверим +Проверим на новом мастере ''db2 10.2.0.12''
-## на новом мастере db2 10.2.0.12: +<code>
 sudo -iu postgres psql -c "select client_addr, usename, application_name, state, sync_state, sent_lsn, write_lsn, flush_lsn, replay_lsn from pg_stat_replication;" sudo -iu postgres psql -c "select client_addr, usename, application_name, state, sync_state, sent_lsn, write_lsn, flush_lsn, replay_lsn from pg_stat_replication;"
- +</code> 
-## На новой реплике db1 10.2.0.11: +На новой реплике ''db1 10.2.0.11''
 +<code>
 sudo -iu postgres psql -c "select status,sender_host,sender_port, slot_name from pg_stat_wal_receiver; sudo -iu postgres psql -c "select status,sender_host,sender_port, slot_name from pg_stat_wal_receiver;
 SELECT pg_is_in_recovery();" SELECT pg_is_in_recovery();"
- +</code> 
-## Если мы хотим полностью разделить БД и сделать самостоятельными: +Если мы хотим полностью разделить БД и сделать самостоятельными: 
-## synchronous_commit = off делать ненужно, это +''synchronous_commit = off'' делать ненужно, это 
-## отключает синхронную фиксацию записи данных транзакции на диск, +отключает синхронную фиксацию записи данных транзакции на диск, нарушит надежность сохранности данных. 
-## нарушит надежность сохранности данных. +<code>
 SELECT pg_promote(); SELECT pg_promote();
 alter system set synchronous_standby_names = ''; alter system set synchronous_standby_names = '';
Строка 1065: Строка 1022:
 SELECT  pg_is_in_recovery();                      ## убедитесь, что сервер действительно стал основным, должно быть false SELECT  pg_is_in_recovery();                      ## убедитесь, что сервер действительно стал основным, должно быть false
 select pg_drop_replication_slot('db1_replica');   ## на db2 select pg_drop_replication_slot('db1_replica');   ## на db2
 +</code>
  
-======================================================================================================== +===== (этап 6) Вариант сценария проведения нагрузочного тестирования. =====
-(этап 6)+
  
-  Вариант сценария проведения нагрузочного тестирования. 
-======================================================================================================== 
  
-  Нагрузочное тестирование предназначено для проверки того, как cистема будет +Нагрузочное тестирование предназначено для проверки того, как cистема будет работать под большим количеством пользователей, одновременно, в течение ограниченного периода времени, чтобы смоделировать реальную ситуацию. 
-  работать под большим количеством пользователей, одновременно, в течение +Количество моделируемых пользователей аналогично ожидаемому объему нагрузки пользователей в реальной жизни.  
-  ограниченного периода времени, чтобы смоделировать реальную ситуацию. +Проверяется время отклика Системы, обнаруживаются узкие места и различные ошибки, например такие, как проблемы с кодом и утечки памяти. 
-  Количество моделируемых пользователей аналогично ожидаемому объему нагрузки +Тестирование позволяет определить какое количество пользователей может обработать Система, прежде чем производительность пострадает.
-  пользователей в реальной жизни. Проверяется время отклика Системы, +
-  обнаруживаются узкие места и различные ошибки, например такие, +
-  как проблемы с кодом и утечки памяти. +
-  Тестирование позволяет определить какое количество пользователей может +
-  обработать Система, прежде чем производительность пострадает.+
  
-  TPC-B , TPC-C  (OLTP-систем (онлайн-транзакционная обработка)) +TPC-B , TPC-C  (OLTP-систем (онлайн-транзакционная обработка)) 
-  -- эталонный тест, используется для стресс-тестирования пиковой + эталонный тест, используется для стресс-тестирования пиковой пропускной способности базы данных, имитирует рабочую нагрузку, состоящую из нескольких пользовательских сеансов, подключенных по сети, со значительной активностью дискового ввода-вывода, за исключением любых сетевых и интерактивных операций, чтобы обеспечить наилучшее измерение пропускной способности;
-  пропускной способности базы данных, имитирует рабочую нагрузку, +
-  состоящую из нескольких пользовательских сеансов, подключенных по сети, +
-  со значительной активностью дискового ввода-вывода, за исключением +
-  любых сетевых и интерактивных операций, чтобы обеспечить наилучшее +
-  измерение пропускной способности;+
  
-  TPC-H (OLAP-систем (онлайн-аналитическая обработка)) +TPC-H (OLAP-систем (онлайн-аналитическая обработка)) 
-  -- эталонный тест, эмулирующий работу приложений бизнес-аналитики, + эталонный тест, эмулирующий работу приложений бизнес-аналитики, состоит из набора бизнес-ориентированных специальных запросов и одновременных модификаций данных, анализирует большие объемы данных, выполняют запросы высокой степени сложности.
-  состоит из набора бизнес-ориентированных специальных запросов и +
-  одновременных модификаций данных, анализирует большие объемы данных, +
-  выполняют запросы высокой степени сложности.+
  
-======================================================================================================== 
  
-  1. pgbench -- программа для запуска эталонных тестов на PostgreSQL, +  pgbench -- программа для запуска эталонных тестов на PostgreSQL, выполняет последовательность команд SQL, вычисляет среднюю скорость транзакций (транзакций в секунду), использует сценарий, основанный на TPC-B, включающий пять команд SELECT, UPDATE и INSERTна транзакцию, также ПО позволяет протестировать собственный сценарий транзакций;
-  выполняет последовательность команд SQL, вычисляет среднюю +
-  скорость транзакций (транзакций в секунду), использует сценарий, +
-  основанный на TPC-B, включающий пять команд SELECT, UPDATE и INSERTна транзакцию, +
-  также ПО позволяет протестировать собственный сценарий транзакций;+
  
-  2. go-tpc -- набор инструментов тестирования рабочих нагрузок на основе +  go-tpc -- набор инструментов тестирования рабочих нагрузок на основе тестов TPC для СУБД PostgreSQL, выполняющий тест TPC-H. \\ 
-  тестов TPC для СУБД PostgreSQL, выполняющий тест TPC-H. +[[https://github.com/pingcap/go-tpc]]
-  https://github.com/pingcap/go-tpc+
  
-  3. sysbench -- это универсальный инструмент для стресс-тестирования+  sysbench -- это универсальный инструмент для стресс-тестирования
  
-  4. HammerDB -- поддерживающее TPC-C, TPC-H и другие сценарии. для само изучения +  HammerDB -- поддерживающее TPC-C, TPC-H и другие сценарии. для само изучения более профессиональный инструмент \\ 
-  более профессиональный инструмент +[[https://www.hammerdb.com/download.html]] 
-  https://www.hammerdb.com/download.html +[[https://www.hammerdb.com/document.html]]
-  https://www.hammerdb.com/document.html+
  
-======================================================================================================== +==== Пример использования pgbench. ====
-  Пример использования pgbench. +
-========================================================================================================+
  
-su - postgres   ## логинимся под УЗ postgres+''su - postgres   ## логинимся под УЗ postgres'' \\
  
-pgbench --help  ## посмотреть доп параметры утилиты +''pgbench --help  ## посмотреть доп параметры утилиты'' \\
- +
-## Создаем пустую БД для тестирования+
  
 +Создаем пустую БД для тестирования
 +<code>
 psql -c "create database tesdb2;" psql -c "create database tesdb2;"
- +</code> 
-## Размер БД может быть изменен согласно запросу Заказчика до необходимого значения, например 1 ТБ. +Размер БД может быть изменен согласно запросу Заказчика до необходимого значения, например 1 ТБ. \\ 
-## Наполняем данными 1 гб (по требованию заказчика) +Наполняем данными 1 гб (по требованию заказчика) \\ 
-## -i – опция инициализации; запуск команды с этой опцией создаст +-i – опция инициализации; запуск команды с этой опцией создаст необходимые таблицы и загрузит тестовыми данными базу данных. \\ 
-## необходимые таблицы и загрузит тестовыми данными базу данных. +-s 68 – параметр scale factor, определяет объём данных. \\ 
-## -s 68 – параметр scale factor, определяет объём данных. +100 000 ? 68 = 6 800 000 строк. 
-## 100 000 ? 68 = 6 800 000 строк. +<code>
 pgbench -h localhost -d tesdb2 -U postgres -i -s 68 pgbench -h localhost -d tesdb2 -U postgres -i -s 68
- +</code> 
-## Проверяем размер создавшейся БД +Проверяем размер создавшейся БД 
-## Можно посмотреть результат в Платформе Tantor. +Можно посмотреть результат в Платформе Tantor. 
 +<code>
 psql -c "\l+ tesdb2" psql -c "\l+ tesdb2"
- +</code> 
-## Выполняем эмуляцию нагрузки +Выполняем эмуляцию нагрузки 
 +<code>
 pgbench -h localhost -p 5432 -c 90 -j 2 -t 100 tesdb2 ## 90 пользователей, 2 потока, 100 транзакций у каждого пользователя pgbench -h localhost -p 5432 -c 90 -j 2 -t 100 tesdb2 ## 90 пользователей, 2 потока, 100 транзакций у каждого пользователя
 +</code> 
 +<code>
 pgbench -c 90 -j 25 -P 60 -T 200 tesdb2               ## нагрузить чтение/запись 25 потоков pgbench -c 90 -j 25 -P 60 -T 200 tesdb2               ## нагрузить чтение/запись 25 потоков
 pgbench -n -c 90 -j 25 -T 200 tesdb2 -b select-only   ## нагрузить только чтение pgbench -n -c 90 -j 25 -T 200 tesdb2 -b select-only   ## нагрузить только чтение
 +</code>
 +-c — количество конкурентных подключений
 +-P — вывод информации каждые * сек
 +-T — длительность теста в сек
 +-j — число потоков
 +-n — не запускать VACUUM перед тестом.
  
-## -c — количество конкурентных подключений +''TPS'' могут варьироваться в зависимости от конфигурации системы, но для большинства приложений значение от 100 до 1000 TPS считается приемлемым. Для высоконагруженных систем это значение может быть значительно выше.
-## -P — вывод информации каждые * сек +
-## -T — длительность теста в сек +
-## -j — число потоков +
-## -n — не запускать VACUUM перед тестом.+
  
-TPS #могут варьироваться в зависимости от конфигурации системы, но для большинства приложений значение от 100 до 1000 TPS считается приемлемым. Для высоконагруженных систем это значение может быть значительно выше.+''Latency''  - Низкие значения задержки (например, менее 10 мс) обычно считаются хорошими. Если задержка превышает 100 мс, это может указывать на проблемы с производительностью.
  
-Latency #Низкие значения задержки (например, менее 10 мс) обычно считаются хорошими. Если задержка превышает 100 мс, это может указывать на проблемы с производительностью. +==== Пример использования sysbench. ====
- +
-======================================================================================================== +
-  Пример использования sysbench. +
-======================================================================================================== +
- +
-## Установка+
  
 +Установка
 +<code>
 sudo apt install sysbench sudo apt install sysbench
 sysbench --help sysbench --help
- +</code> 
-## Создание тестовой БД +Создание тестовой БД 
 +<code>
 sudo -iu postgres createdb testdb2 sudo -iu postgres createdb testdb2
- +</code> 
-## Инициализация данных в СУБД через локальное соединение: +Инициализация данных в СУБД через локальное соединение: 
 +<code>
 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_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
- +</code> 
-## Проведение теста: +Проведение теста: 
-## Сценарии oltp_read_write, oltp_read_only, oltp_update_non_index, и т.п. +Сценарии ''oltp_read_write, oltp_read_only, oltp_update_non_index'', и т.п. 
-## --threads – число параллельных потоков (клиентов). +''--threads – число параллельных потоков (клиентов).'' \\ 
-## --time – общее время теста в секундах. +''--time – общее время теста в секундах.'' 
 +<code>
 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_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
- +</code> 
-## Очистка: +Очистка: 
 +<code>
 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 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
 +</code>
  
-======================================================================================================== +==== Пример использования go-tpc. ====
-  Пример использования go-tpc. +
-======================================================================================================== +
- +
-## Установка https://github.com/pingcap/go-tpc +
-## Подготовка БД для модели аналитических запросов+
  
 +Установка [[https://github.com/pingcap/go-tpc]]
 +Подготовка БД для модели аналитических запросов
 +<code>
 go-tpc tpch prepare -d postgres -U postgres -p 'postgres' -D benchmarkh -H 10.2.0.11 -P 5432 --conn-params sslmode=disable go-tpc tpch prepare -d postgres -U postgres -p 'postgres' -D benchmarkh -H 10.2.0.11 -P 5432 --conn-params sslmode=disable
- +</code> 
-## Запуск эмуляции аналитического запроса +Запуск эмуляции аналитического запроса 
 +<code>
 go-tpc tpch run -d postgres -U postgres -p 'postgres' -D benchmarkh -H 10.2.0.11 -P 5432 --conn-params sslmode=disable go-tpc tpch run -d postgres -U postgres -p 'postgres' -D benchmarkh -H 10.2.0.11 -P 5432 --conn-params sslmode=disable
 +</code>
  
-======================================================================================================== +===== FAQ доп информация, которая не рассматривалась в практикуме: =====
-                  FAQ доп информация, которая не рассматривалась в практикуме: +
- +
-======================================================================================================== +
-  Для удобства отображения в psql редактируем содержание файла подсказки .psqlrc (~/.psqlrc) +
-========================================================================================================+
  
-## Рекомендуется также настроить подсказку командного интерпретатора СУБД +==== Для удобства отображения в psql редактируем содержание файла подсказки .psqlrc (~/.psqlrc) ====
-## и вывести информацию по серверу, порту подключения, БД и пользователе. +
-## Настраиваем вид подсказки в файле .psqlrc в домашнем каталоге пользователя postgres при подключении к СУБД. +
-## переходим под пользователя postgres+
  
 +Рекомендуется также настроить подсказку командного интерпретатора СУБД и вывести информацию по серверу, порту подключения, БД и пользователе.
 +Настраиваем вид подсказки в файле .psqlrc в домашнем каталоге пользователя postgres при подключении к СУБД. 
 +переходим под пользователя postgres
 +<code>
 sudo su - postgres sudo su - postgres
- +</code> 
-## Редактируем конфигурационный файл +Редактируем конфигурационный файл 
 +<code>
 nano ~/.psqlrc nano ~/.psqlrc
- +</code> 
-## Добавляем в файл .psqlrc строку +Добавляем в файл .psqlrc строку 
-## пример цветной промпт +пример цветной промпт 
 +<code>
 \set PROMPT1 '%[%033[0;90m%][%p]%[%033[0m%] %[%033[0;31m%]%n%[%033[0m%]@%[%033[0;34m%]%m%[%033[0m%]:%[%033[0;32m%]%>%[%033[0m%] %[%033[0;36m%]%~%[%033[0m%] %[%033[0;33m%]%[%033[5m%]%x%[%033[0m%]%[%033[0m%]%R%# ' \set PROMPT1 '%[%033[0;90m%][%p]%[%033[0m%] %[%033[0;31m%]%n%[%033[0m%]@%[%033[0;34m%]%m%[%033[0m%]:%[%033[0;32m%]%>%[%033[0m%] %[%033[0;36m%]%~%[%033[0m%] %[%033[0;33m%]%[%033[5m%]%x%[%033[0m%]%[%033[0m%]%R%# '
 \set PROMPT2 '%[%033[0;90m%][%l]%[%033[0m%] %[%033[0;31m%]%n%[%033[0m%]@%[%033[0;34m%]%m%[%033[0m%]:%[%033[0;32m%]%>%[%033[0m%] %[%033[0;36m%]%~%[%033[0m%] %[%033[0;33m%]%[%033[5m%]%x%[%033[0m%]%[%033[0m%]%R%# ' \set PROMPT2 '%[%033[0;90m%][%l]%[%033[0m%] %[%033[0;31m%]%n%[%033[0m%]@%[%033[0;34m%]%m%[%033[0m%]:%[%033[0;32m%]%>%[%033[0m%] %[%033[0;36m%]%~%[%033[0m%] %[%033[0;33m%]%[%033[5m%]%x%[%033[0m%]%[%033[0m%]%R%# '
- +</code> 
-## Сохраняем и вызываем psql для провеки +Сохраняем и вызываем psql для проверки 
 +<code>
 psql psql
- +</code> 
-## если мы работаем из под другого пользователя в системе с правами sudo, +если мы работаем из под другого пользователя в системе с правами sudo, то можно подключиться к БД по локальному соединению так 
-## то можно подключиться к БД по локальному соединению так +<code>
 sudo -iu postgres psql sudo -iu postgres psql
 +</code>
 +Пояснение для подсказки '%M:%> %n@%/%R%#%x ':
 +\set PROMPT1 '%M:%> %n@%/%R%#%x '
  
-## Пояснение для подсказки '%M:%> %n@%/%R%#%x '+''%M имя хоста сервера баз данных отображается «[local]», если соединение осуществляется через сокет домена Unix'' \\ 
-## \set PROMPT1 '%M:%> %n@%/%R%#%x ' +''%> прослушиваемый порт'' \\ 
- +''%n имя пользователя сеанса'' \\ 
-%M имя хоста сервера баз данных отображается «[local]», если соединение осуществляется через сокет домена Unix +''%/ текущая база данных'' \\ 
-%> прослушиваемый порт +''%R находитесь ли вы в однострочном режиме (^) или отключены (!), но обычно ='' \\ 
-%n имя пользователя сеанса +''%# являетесь ли вы суперпользователем (#) или обычным пользователем (>)'' \\ 
-%/ текущая база данных +''%x статус транзакции - обычно пусто, если только не в блоке транзакции (*)'' \\
-%R находитесь ли вы в однострочном режиме (^) или отключены (!), но обычно = +
-%# являетесь ли вы суперпользователем (#) или обычным пользователем (>) +
-%x статус транзакции - обычно пусто, если только не в блоке транзакции (*) +
- +
-## Пример вывода командной строки с подсказкой для сервера СУБД с IP 10.2.0.11, +
-## работающем на порту 5432, для пользователя postgres и БД test+
  
 +Пример вывода командной строки с подсказкой для сервера СУБД с IP 10.2.0.11, работающем на порту 5432, для пользователя postgres и БД test
 +<code>
 10.2.0.11:5432 postgres@test=# 10.2.0.11:5432 postgres@test=#
 +</code>
  
-======================================================================================================== +==== Cписок команд psql которые часто используются. ====
-  Cписок команд psql которые часто используются. +
-========================================================================================================+
  
-\l    ## список БД +''\l    ## список БД'' \\ 
-\dt   ## список таблиц +''\dt   ## список таблиц'' \\ 
-\du   ## список пользователей +''\du   ## список пользователей'' \\ 
-\db   ## список табличных пространств +''\db   ## список табличных пространств'' \\ 
-\dn   ## список схемы+''\dn   ## список схемы'' \\
  
-\dx                                     ## список установленных расширений +''\dx                                     ## список установленных расширений'' \\ 
-\dx+ pg_stat_statements                 ## Посмотрим содержимое расширения +''\dx+ pg_stat_statements                 ## Посмотрим содержимое расширения'' \\ 
-SELECT * FROM pg_available_extensions;  ## список доступных расширений+''SELECT * FROM pg_available_extensions;  ## список доступных расширений'' \\
  
-\d table_name             ## структура таблицы +''\d table_name             ## структура таблицы'' \\ 
-\c db_name                ## подключиться к БД +''\c db_name                ## подключиться к БД'' \\ 
-\password user            ## смена пароля УЗ в БД +''\password user            ## смена пароля УЗ в БД'' \\ 
-\d+ pg_stat_wal_receiver  ## вывести поля таблицы +''\d+ pg_stat_wal_receiver  ## вывести поля таблицы'' \\ 
-\x                        ## задать параметр вывода следующим select таблицы по вертикали в читаемом виде, чтобы отключить также \x +''\x                        ## задать параметр вывода следующим select таблицы по вертикали в читаемом виде, чтобы отключить также \x'' \\ 
-select tantor_version();  ## посмотреть версию тантор+''select tantor_version();  ## посмотреть версию тантор'' \\
  
-## эти переменные также можно указать в .psqlrc+эти переменные также можно указать в ''.psqlrc''
  
-\pset pager on           ## вкл постраничный пейджер, окно вывода команд с ожиданием в конце (end) +''\pset pager on           ## вкл постраничный пейджер, окно вывода команд с ожиданием в конце (end)'' \\ 
-\pset pager off          ## выкл постраничный пейджер +''\pset pager off          ## выкл постраничный пейджер'' \\ 
-\pset pager              ## статус постраничный пейджер +''\pset pager              ## статус постраничный пейджер'' \\ 
-\pset linestyle unicode  ## вывод таблиц будет отображаться линиями, вместо тире +''\pset linestyle unicode  ## вывод таблиц будет отображаться линиями, вместо тире'' \\ 
-\pset border 2 +''\pset border 2'' \\ 
-export PAGER='less -SXF'  ## переменная окружения ОС, сменить утилиту вывода страницы в psql для пейджер.+''export PAGER='less -SXF'  ## переменная окружения ОС, сменить утилиту вывода страницы в psql для пейджер.'' \\
  
-Остальное само изучение или курсы по DBA1, DBA2 +==== Доп утилиты в ОС для работы с postgres, которые начинаются на pg* ====
- +
-======================================================================================================== +
-  Доп утилиты в ОС для работы с postgres, которые начинаются на pg* +
-  https://docs.tantorlabs.ru/tdb/ru/17_5/se/reference-client.html +
-========================================================================================================+
  
 +[[https://docs.tantorlabs.ru/tdb/ru/17_5/se/reference-client.html]]
 +<code>
 sudo su - postgres sudo su - postgres
 +</code> 
 +</code>
 psql psql
 pg_ctl        --help pg_ctl        --help
Строка 1294: Строка 1216:
 pg_upgrade    --help pg_upgrade    --help
 pg_isready    --help pg_isready    --help
 +</code>
 +''vacuumlo'' - (к вакуумированию (VACUUM) не имеет отношение) Это удобная для периодического запуска утилита удаления (вычистки) осиротевших больших объектов из баз данных кластера. Автоматизировать удаление осиротевших больших объектов можно разными способами (например, триггерами), эта утилита один из них. 
 +Расширение "lo" содержит функцию lo_manage() для использования в триггерах, предотвращающих появление осиротевших больших объектов.
  
-vacuumlo      - (к вакуумированию (VACUUM) не имеет отношение) Это удобная для периодического запуска утилита удаления +''pg_config --sharedir''директория с файлами расширения 
-              (вычистки) осиротевших больших объектов из баз данных кластера. Автоматизировать удаление осиротевших больших +<code>
-               объектов можно разными способами (например, триггерами), эта утилита один из них. Расширение "lo" +
-               содержит функцию lo_manage() для использования в триггерах, предотвращающих появление осиротевших больших объектов. +
- +
-pg_config --sharedir ## директория с файлами расширения+
 ls -la /opt/tantor/db/16/share/postgresql ls -la /opt/tantor/db/16/share/postgresql
 +</code>
  
-======================================================================================================== +---- 
-  Если psql не запускается под пользователем postgres (bash: psql: команда не найдена), +Если psql не запускается под пользователем postgres (bash: psql: команда не найдена), 
-  значит в переменной окружения path отсутствует путь до /opt/tantor/db/16/bin +значит в переменной окружения path отсутствует путь до /opt/tantor/db/16/bin 
-======================================================================================================== +----
- +
-## редактируем переменную окружения+
  
 +редактируем переменную окружения
 +<code>
 nano ~/.bashrc nano ~/.bashrc
- +</code> 
-## добавляем и сохраняем +добавляем и сохраняем 
 +<code>
 export PATH=/opt/tantor/db/16/bin:$PATH export PATH=/opt/tantor/db/16/bin:$PATH
- +</code> 
-## Перезапускаем оболочку +Перезапускаем оболочку 
 +<code>
 exec bash exec bash
- +</code> 
-## Проверяем подключение, пример +Проверяем подключение, пример 
 +<code>
 psql -p 5432 -h localhost -U postgres psql -p 5432 -h localhost -U postgres
 +</code>
  
-======================================================================================================== +>!!! При необходимости, если есть отдельно требования заказчика. 
-  !!! При необходимости, если есть отдельно требования заказчика. +Настройки правил подключения к БД. 
-  Настройки правил подключения к БД. +Документация по настройке pg_hba.conf: 
-  Документация по настройке pg_hba.conf: +[[https://docs.tantorlabs.ru/tdb/ru/16_6/se/auth-pg-hba-conf.html#pg-hba-conf]] 
-  https://docs.tantorlabs.ru/tdb/ru/16_6/se/auth-pg-hba-conf.html#pg-hba-conf +<code>
-======================================================================================================== +
 sudo nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf sudo nano /var/lib/postgresql/tantor-be-16/data/pg_hba.conf
 +</code>
  
-======================================================================================================== 
-  !!! При необходимости, если есть отдельно требования заказчика. 
-  По умолчанию в параметрах конфигурации в файле postgresql.conf сервера СУБД 
-  не настроен вывод системных журналов СУБД в отдельных каталог и нет прямой ссылки на каталог данных. 
-  Рекомендуется включить возможность вывода системных журналов отдельный каталог 
-  и указать прямую ссылку на каталог данных. 
-======================================================================================================== 
  
 +> !!! При необходимости, если есть отдельно требования заказчика.
 +> По умолчанию в параметрах конфигурации в файле postgresql.conf сервера СУБД не настроен вывод системных журналов СУБД в отдельных каталог и нет прямой ссылки на каталог данных.
 +> Рекомендуется включить возможность вывода системных журналов отдельный каталог и указать прямую ссылку на каталог данных.
 +<code>
 sudo nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf sudo nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf
- +</code> 
-## Укажем путь сохранения log файлов +Укажем путь сохранения log файлов 
 +<code>
 logging_collector = on; logging_collector = on;
 log_directory = '/var/lib/postgresql/tantor-be-16/data/log/' log_directory = '/var/lib/postgresql/tantor-be-16/data/log/'
- +</code> 
-## Применение параметров без перезагрузки сервера СУБД с проверкой +Применение параметров без перезагрузки сервера СУБД с проверкой 
 +<code>
 sudo -iu postgres psql sudo -iu postgres psql
 SELECT pg_reload_conf(); SELECT pg_reload_conf();
 SHOW logging_collector; SHOW logging_collector;
- +</code> 
-## посмотреть лог БД, пример: +посмотреть лог БД, пример: 
 +<code>
 less /var/lib/postgresql/tantor-be-16/data/log/postgresql-2024-05-04_194815.log less /var/lib/postgresql/tantor-be-16/data/log/postgresql-2024-05-04_194815.log
 +</code>
  
-## !!! не забудьте скорректировать скрипт Ротация логов.+!!! не забудьте скорректировать скрипт Ротация логов.
  
-## При проверке системных журналов ОС 
  
 +При проверке системных журналов ОС
 +<code>
 sudo journalctl -u tantor-be-server-16.service sudo journalctl -u tantor-be-server-16.service
 +</code>
 +Утилита сообщает, что журналы СУБД Tantor далее будут выводится в подкаталог log, каталога с данными БД. Далее, в нашем примере, процесс запуска СУБД Tantor
 +Можно посмотреть в каталоге ''/var/lib/postgresql/tantor-be-16/data/log'' в содержании самого нового файла ''postgresql-<дата>.log''
  
-## Утилита сообщает, что журналы СУБД Tantor далее будут выводится в подкаталог log, +==== Сетевые настройки слушателя и порта инстанса СУБД. ==== 
-## каталога с данными БД. Далее, в нашем примере, процесс запуска СУБД Tantor +<code>
-## Можно посмотреть в каталоге /var/lib/postgresql/tantor-be-16/data/log в содержании +
-## самого нового файла postgresql-<дата>.log +
- +
-======================================================================================================== +
-  Сетевые настройки слушателя и порта инстанса СУБД. +
-======================================================================================================== +
 sudo nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf sudo nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf
- +</code> 
-## ищем и выставляем параметры +ищем и выставляем параметры 
 +<code>
 listen_addresses = '*' listen_addresses = '*'
-  ## или можно указать прямо через запятую несколько IP сетевых интерфейсов на одном хосте.+</code> 
 +или можно указать прямо через запятую несколько IP сетевых интерфейсов на одном хосте. 
 +<code>
 listen_addresses = 'localhost, <ip>' listen_addresses = 'localhost, <ip>'
  
 port = 5433 port = 5433
- +</code> 
-## перезагружаем и проверяем +перезагружаем и проверяем 
 +<code>
 sudo systemctl restart tantor-be-server-16 sudo systemctl restart tantor-be-server-16
 sudo ss -tulnp | grep postgres sudo ss -tulnp | grep postgres
- +</code> 
-## подключаемся к СУБД по новому порту +подключаемся к СУБД по новому порту 
 +<code>
 sudo -iu postgres psql -p 5433 -h 10.2.0.11 -U postgres sudo -iu postgres psql -p 5433 -h 10.2.0.11 -U postgres
 +</code>
  
-======================================================================================================== +!!! При необходимости, если есть отдельно требования заказчика. 
-  !!! При необходимости, если есть отдельно требования заказчика. +Можно перенести каталог с данными экземпларя СУБД на отдельный другой католог или точку монтирования (диск) в ОС
-  Можно перенести каталог с данными экземпларя СУБД на отдельный другой католог +
-  или точку монтирования (диск) в ОС +
-========================================================================================================+
  
-## Останавливаем службу СУБД 
  
 +Останавливаем службу СУБД
 +<code>
 sudo -i sudo -i
 systemctl stop tantor-be-server-16.service systemctl stop tantor-be-server-16.service
- +</code> 
-## Редактируем в postgresql.conf ссылку на новый каталог данных +Редактируем в ''postgresql.conf'' ссылку на новый каталог данных 
 +<code>
 nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf nano /var/lib/postgresql/tantor-be-16/data/postgresql.conf
- +</code> 
-## Прямая ссылка на новый каталог данных, мы просто меняем путь и сохраняем. +Прямая ссылка на новый каталог данных, мы просто меняем путь и сохраняем. 
 +<code>
 data_directory = '/new/data/directory' data_directory = '/new/data/directory'
- +</code> 
-## Переносим data каталог через команду mv или копируем через cp -R в новый каталог +Переносим data каталог через команду mv или копируем через cp -R в новый каталог 
 +<code>
 cp -R /var/lib/postgresql/tantor-be-16/data /new/data/directory cp -R /var/lib/postgresql/tantor-be-16/data /new/data/directory
- +</code> 
-## Назначаем права на новый каталог +Назначаем права на новый каталог 
 +<code>
 sudo chown -R postgres:postgres /new/data/directory sudo chown -R postgres:postgres /new/data/directory
- +</code> 
-## Меняем путь в службе +Меняем путь в службе 
 +<code>
 sudo nano /lib/systemd/system/tantor-be-server-16.service sudo nano /lib/systemd/system/tantor-be-server-16.service
  
 Environment=PGDATA=/new/data/directory Environment=PGDATA=/new/data/directory
- +</code> 
-## Запускаем экземпляр +Запускаем экземпляр 
 +<code>
 sudo systemctl daemon-reload sudo systemctl daemon-reload
 sudo systemctl start tantor-be-server-16.service sudo systemctl start tantor-be-server-16.service
 +</code>
  
-======================================================================================================== +----
-  Пакеты в ОС можно устанавливать через команды sudo dpkg -i **.deb +
-  Нужно будет также установить все зависимости руками. +
-  При этом инициализация инстанса СУБД не будет производиться автоматически. +
-  Если нужно создать инстанс СУБД или пересоздать чистую конфигурацию в другой каталог, +
-  инициализация СУБД Tantor производится под пользователем postgres следующим образом: +
-========================================================================================================+
  
-## Переходим в УЗ postgres+Пакеты в ОС можно устанавливать через команды  
 +<code> 
 +sudo dpkg -i **.deb \\ 
 +<code> 
 +>Нужно будет также установить все зависимости руками. \\
  
-sudo su - postgres+> При этом инициализация инстанса СУБД не будет производиться автоматически.
  
-## Инициализация нового экземпляра, каталог должен быть пустым+> Если нужно создать инстанс СУБД или пересоздать чистую конфигурацию в другой каталог, инициализация СУБД Tantor производится под пользователем postgres следующим образом: \\
  
-/opt/tantor/db/16/bin/initdb -D /var/lib/postgresql/tantor-be-16/data2 --data-checksums+----
  
-## Правим порт, например 5433, если нужно, смотри комментарий ниже.+Переходим в УЗ postgres
  
 +<code>
 +sudo su - postgres
 +</code>
 +
 +Инициализация нового экземпляра, каталог должен быть пустым
 +<code>
 +/opt/tantor/db/16/bin/initdb -D /var/lib/postgresql/tantor-be-16/data2 --data-checksums
 +</code>
 +
 +Правим порт, например 5433, если нужно, смотри комментарий ниже.
 +<code>
 nano /var/lib/postgresql/tantor-be-16/data2/postgresql.conf nano /var/lib/postgresql/tantor-be-16/data2/postgresql.conf
 +</code>
  
-## !!! Если планируется запускать параллельно несколько экземпляров, +----
-## то порты конфигурации СУБД в postgresql.conf должны быть разные, +
-## В продуктивных системах это не рекомендуется, так как нагрузка CPU и RAM +
-## между процессами может делиться неравномерно, но рамках тестирования допустимо.+
  
-## Для параллельного запуска экземпляров одной и той же версии сборки СУБД +> !!! Если планируется запускать параллельно несколько экземпляров, то порты конфигурации СУБД в postgresql.conf должны быть разные, 
-## создадим отдельный новый файл службы под root.+> В продуктивных системах это не рекомендуется, так как нагрузка CPU и RAM между процессами может делиться неравномерно, но рамках тестирования допустимо.
  
 +----
 +
 +Для параллельного запуска экземпляров одной и той же версии сборки СУБД создадим отдельный новый файл службы под root.
 +<code>
 sudo -i sudo -i
 cp /lib/systemd/system/tantor-be-server-16.service /lib/systemd/system/tantor-be-server-16-data2.service cp /lib/systemd/system/tantor-be-server-16.service /lib/systemd/system/tantor-be-server-16-data2.service
 nano /lib/systemd/system/tantor-be-server-16-data2.service nano /lib/systemd/system/tantor-be-server-16-data2.service
- +</code> 
-## Редактируем новый файл службы, корректируем путь до нового каталога с данными и сохраняем +Редактируем новый файл службы, корректируем путь до нового каталога с данными и сохраняем 
 +<code>
 Environment=PGDATA=/var/lib/postgresql/tantor-be-16/data2 Environment=PGDATA=/var/lib/postgresql/tantor-be-16/data2
- +</code> 
-## Запустим новую службу +Запустим новую службу 
 +<code>
 systemctl daemon-reload systemctl daemon-reload
 systemctl enable --now tantor-be-server-16-data2 systemctl enable --now tantor-be-server-16-data2
 systemctl status tantor-be-server-16-data2.service systemctl status tantor-be-server-16-data2.service
 +</code>
  
-======================================================================================================== +==== Ручной запуск инстанса СУБД без службы. ====
-  Ручной запуск инстанса СУБД без службы. +
-========================================================================================================+
  
 +<code>
 sudo su - postgres sudo su - postgres
  
 /opt/tantor/db/16/bin/pg_ctl start -D /var/lib/postgresql/tantor-be-16/data2 /opt/tantor/db/16/bin/pg_ctl start -D /var/lib/postgresql/tantor-be-16/data2
- +</code> 
-## Останавливаем +Останавливаем 
 +<code>
 /opt/tantor/db/16/bin/pg_ct stop -D /var/lib/postgresql/tantor-be-16/data2 /opt/tantor/db/16/bin/pg_ct stop -D /var/lib/postgresql/tantor-be-16/data2
- +</code> 
-## посмотреть все возможности pg_ctl +посмотреть все возможности pg_ctl 
 +<code>
 /opt/tantor/db/16/bin/pg_ct --help /opt/tantor/db/16/bin/pg_ct --help
 +</code>
  
-## !!! Если планируется установка нескольких версий сборок пакетов СУБД 
-## Например Tantor 15, Tantor 16 версий, то путь до pg_ctl должен быть соответствующий версии. 
-## Службы для разных версий СУБД после установки пакетов будут разные, создавать отдельно не нужно. 
  
-======================================================================================================== +> !!! Если планируется установка нескольких версий сборок пакетов СУБД 
-  Обновление СУБД tantor по мажорной версии например с 15 на 16+> Например Tantor 15, Tantor 16 версий, то путь до pg_ctl должен быть соответствующий версии. 
-======================================================================================================== +> Службы для разных версий СУБД после установки пакетов будут разные, создавать отдельно не нужно.
-Вариант 1 Возможен только между одинаковыми сборками СУБД. +
-se15 -> se16 +
-be15 -> be16 +
-se1c 15 -> se1c 16+
  
-В противном случае при проверке будут ошибки, и тогда Вариант 2, 
-обновление СУБД можно выполнить только через восстановление из бекапа pg_dumpall. 
-======================================================================================================== 
  
-## делаем логический бекап БД, pg_basebackup сюда не подойдет, так как +==== Обновление СУБД tantor по мажорной версии например с 15 на 16====
-## pg_basebackup создаёт полную копию каталога данных.+
  
-pg_dumpall -U postgres > backup.sql 
  
-## Установите пакет новой версии PostgreSQL c инициализацией новой БД +> **Вариант 1** Возможен только между одинаковыми сборками СУБД. 
-## процесс описан в начале файла. +> ''se15 -> se16'' \\ 
-## инициализацию можно выполнить руками если вы просто установили пакет.+> ''be15 -> be16'' \\ 
 +> ''se1c 15 -> se1c 16'' 
  
-/opt/tantor/db/16/bin/initdb -D /var/lib/postgresql/tantor-se-16/data --no-data-checksums+> В противном случае при проверке будут ошибки, и тогда **Вариант 2**, обновление СУБД можно выполнить только через восстановление из ''бекапа pg_dumpall''.
  
-## обновите права на подкаталоги 
  
 +делаем логический бекап БД, ''pg_basebackup'' сюда не подойдет, так как ''pg_basebackup'' создаёт полную копию каталога данных.
 +<code>
 +pg_dumpall -U postgres > backup.sql
 +</code>
 +Установите пакет новой версии PostgreSQL c инициализацией новой БД процесс описан в начале файла. 
 +инициализацию можно выполнить руками если вы просто установили пакет.
 +<code>
 +/opt/tantor/db/16/bin/initdb -D /var/lib/postgresql/tantor-se-16/data --no-data-checksums
 +</code>
 +обновите права на подкаталоги
 +<code>
 chown -R postgres:postgres /var/lib/postgresql chown -R postgres:postgres /var/lib/postgresql
- +</code> 
-## останавливаем все СУБД (рекомендуется для больших баз) +останавливаем все СУБД (рекомендуется для больших баз) 
 +<code>
 systemctl stop tantor-* systemctl stop tantor-*
- +</code> 
-## Проверьте совместимость кластеров +Проверьте совместимость кластеров 
 +<code>
 su - postgres su - postgres
 +</code> 
 +<code>
 /opt/tantor/db/16/bin/pg_upgrade \ /opt/tantor/db/16/bin/pg_upgrade \
 --old-datadir /var/lib/postgresql/tantor-be-15/data \ --old-datadir /var/lib/postgresql/tantor-be-15/data \
Строка 1533: Строка 1464:
 --new-bindir /opt/tantor/db/16/bin \ --new-bindir /opt/tantor/db/16/bin \
 --check     ## добавьте -v для полного вывода --check     ## добавьте -v для полного вывода
 +</code>
 +=== Вариант 1 Обновление СУБД через утилиту pg_upgrade. ===
  
---------------------------------------------------------------------------------- +Процесс скопирует данные из старого кластера в новый и настроит его для работы 
-  Вариант 1 Обновление СУБД через утилиту pg_upgrade. +<code>
---------------------------------------------------------------------------------- +
- +
-## Процесс скопирует данные из старого кластера в новый и настроит его для работы +
 /opt/tantor/db/16/bin/pg_upgrade \ /opt/tantor/db/16/bin/pg_upgrade \
 --old-datadir /var/lib/postgresql/tantor-be-15/data \ --old-datadir /var/lib/postgresql/tantor-be-15/data \
Строка 1545: Строка 1474:
 --old-bindir /opt/tantor/db/15/bin \ --old-bindir /opt/tantor/db/15/bin \
 --new-bindir /opt/tantor/db/16/bin --new-bindir /opt/tantor/db/16/bin
 +</code>
 +Если обновление успешно, можно удалить старую версию. будет сообщение:
 +''Не забудьте проверить postgresql.auto.conf, postgresql.conf и pg_hba.conf на новой инсталяции, если конфигурация дефолтная, перенесите со старой в новую.''
  
-## Если обновление успешно, можно удалить старую версию. будет сообщение: +''Обновление завершено''
-## Не забудьте проверить postgresql.auto.conf, postgresql.conf и pg_hba.conf +
-## на новой инсталяции, если конфигурация дефолтная, перенесите со старой в новую.+
  
-Обновление завершено 
------------------------------------------------------------ 
-Статистика оптимизатора утилитой pg_upgrade не переносится. 
-Запустив новый сервер, имеет смысл выполнить: 
-    /opt/tantor/db/16/bin/vacuumdb --all --analyze-in-stages 
-При запуске этого скрипта будут удалены файлы данных старого кластера: 
-    ./delete_old_cluster.sh 
  
-## Перенесите настройки из старого postgresql.conf и pg_hba.conf в новый кластер, если они отличаются.+> Статистика оптимизатора утилитой pg_upgrade не переносится. 
 +> Запустив новый сервер, имеет смысл выполнить: 
 +> ''/opt/tantor/db/16/bin/vacuumdb --all --analyze-in-stages'' 
 +> При запуске этого скрипта будут удалены файлы данных старого кластера: 
 +> ''./delete_old_cluster.sh''
  
-## запускаем кластер 
  
-/opt/tantor/db/16/bin/pg_ctl -D /var/lib/postgresql/tantor-be-16/data start +Перенесите настройки из старого postgresql.conf и pg_hba.conf в новый кластер, если они отличаются.
- +
-## обновляем статистику+
  
 +запускаем кластер
 +<code>
 +/opt/tantor/db/16/bin/pg_ctl -D /var/lib/postgresql/tantor-be-16/data start
 +</code>
 +обновляем статистику
 +<code>
 /opt/tantor/db/16/bin/vacuumdb --all --analyze-in-stages /opt/tantor/db/16/bin/vacuumdb --all --analyze-in-stages
- +</code> 
-## подключаемся к бд и проверяем+подключаемся к бд и проверяем 
 +<code>
 psql psql
 select tantor_version(); select tantor_version();
Строка 1574: Строка 1505:
 \l \l
 \q \q
- +</code> 
-## удаляем старый кластер +удаляем старый кластер 
 +<code>
 ./delete_old_cluster.sh ./delete_old_cluster.sh
-  ## или вручную+</code> 
 +или вручную 
 +<code>
 rm -rf /var/lib/postgresql/tantor-<старая_версия> rm -rf /var/lib/postgresql/tantor-<старая_версия>
- +</code> 
-## удаляем старые пакеты +удаляем старые пакеты 
 +<code>
 apt remove tantor-<старая_версия> apt remove tantor-<старая_версия>
 +</code>
 +=== Вариант 2: pg_dump + pg_restore (если pg_upgrade недоступен из-за ошибо совместимости) ===
  
--------------------------------------------------------------------------------------- +Перенесите настройки из ''старого postgresql.conf'' и ''pg_hba.conf'' в новый кластер 
-Вариант 2: pg_dump + pg_restore (если pg_upgrade недоступен из-за ошибо совместимости) +пример: 
--------------------------------------------------------------------------------------- +<code>
- +
-## Перенесите настройки из старого postgresql.conf и pg_hba.conf в новый кластер +
-## пример: +
 cd /var/lib/postgresql/tantor-be-15/data cd /var/lib/postgresql/tantor-be-15/data
 cp postgresql.conf postgresql.auto.conf pg_hba.conf /var/lib/postgresql/tantor-be-16/data cp postgresql.conf postgresql.auto.conf pg_hba.conf /var/lib/postgresql/tantor-be-16/data
- +</code> 
-## Запустите кластер новую версию СУБД +Запустите кластер новую версию СУБД 
 +<code>
 /opt/tantor/db/16/bin/pg_ctl -D /var/lib/postgresql/tantor-be-16/data start /opt/tantor/db/16/bin/pg_ctl -D /var/lib/postgresql/tantor-be-16/data start
 +</code>
 +Восстановите данные:
  
-## Восстановите данные: +Если в бэкапе есть ошибки (например, из-за различий в версиях),добавьте флаг ''--no-sync'' для игнорирования мелких проблем. 
-## Если в бэкапе есть ошибки (например, из-за различий в версиях), +<code>
-## добавьте флаг --no-sync для игнорирования мелких проблем. +
 psql -U postgres -f backup.sql psql -U postgres -f backup.sql
- +</code> 
-## проверяем что все базы на месте, подключаемся к бд и проверяем +проверяем что все базы на месте, подключаемся к бд и проверяем 
 +<code>
 psql psql
 select tantor_version(); select tantor_version();
Строка 1612: Строка 1543:
 \l \l
 \q \q
- +</code> 
-## Если обновление успешно, можно удалить старую версию. +Если обновление успешно, можно удалить старую версию. 
 +<code>
 apt remove tantor-<старая_версия> apt remove tantor-<старая_версия>
 rm -rf /var/lib/postgresql/tantor-<старая_версия> rm -rf /var/lib/postgresql/tantor-<старая_версия>
- +</code> 
-======================================================================================================== +==== Если нужно перенастроить переменные платформы /opt/tantor/eco/platform.env ==== 
-  Если нужно перенастроить переменные платформы /opt/tantor/eco/platform.env +например: после установки внести настройки почты 
-  например: после установки внести настройки почты +переходим в каталог 
-======================================================================================================== +<code>
- +
-## переходим в каталог +
 cd /opt/tantor/eco/ cd /opt/tantor/eco/
- +</code> 
-## останавливаем докеры +останавливаем докеры 
 +<code>
 sudo docker-compose --env-file=platform.env down sudo docker-compose --env-file=platform.env down
- +</code> 
-## правим файл c переменными и сохраняем +правим файл c переменными и сохраняем 
 +<code>
 nano platform.env nano platform.env
 EMAIL_PORT= EMAIL_PORT=
Строка 1638: Строка 1566:
 EMAIL_HOST= EMAIL_HOST=
 EMAIL_PASSWORD= EMAIL_PASSWORD=
- +</code> 
-## поднимаем контейнеры с новыми параметрами +поднимаем контейнеры с новыми параметрами 
 +<code>
 docker-compose --env-file platform.env up -d docker-compose --env-file platform.env up -d
 +</code>
 +проверяем платформу через браузер.
  
-## проверяем платформу через браузер. 
- 
-======================================================================== 
------------------ удаление платформы ----------------- 
-======================================================================== 
  
 +===== удаление платформы =====
 +<code>
 sudo docker stop $(docker ps -aq) sudo docker stop $(docker ps -aq)
 sudo docker rm $(docker ps -aq) sudo docker rm $(docker ps -aq)
Строка 1655: Строка 1582:
 sudo docker rmi $(docker images -q) sudo docker rmi $(docker images -q)
 sudo rm -rf /opt/tantor sudo rm -rf /opt/tantor
 +</code>
  
-======================================================================== +==== удаление СУБД и агента ==== 
------------------ удаление СУБД и агента ----------------- +<code>
-======================================================================== +
 sudo apt purge tantor-be-server-16 sudo apt purge tantor-be-server-16
 sudo rm -rf /opt/tantor/ sudo rm -rf /opt/tantor/
 sudo rm -rf /var/lib/postgresql/tantor-be-16/ sudo rm -rf /var/lib/postgresql/tantor-be-16/
 +</code> 
 +<code>
 sudo apt purge pmaagent sudo apt purge pmaagent
 sudo rm -rf /var/lib/pma/ sudo rm -rf /var/lib/pma/
- +</code>
- +
- +
- +
- +
- +
- +
- +
- +
vji/tantor1/start.1753965384.txt.gz · Последнее изменение: 2025/07/31 12:36 — vji

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki