vji:tantor1:start
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
vji:tantor1:start [2025/07/31 12:12] – vji | vji: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) |
- | >**db1 db2 db3** -- сервера для СУБД по (2 cpu / 2гб ram / 20гб HDD) | + | > **db1 db2 db3** -- сервера для СУБД по (2 cpu / 2гб ram / 20гб HDD) |
- | > | + | > **haproxy1 haproxy2** -- для балансировщика по (2 cpu / 2гб ram / 20гб HDD) |
- | ---- | ||
- | >Для платформы Tantor обязательно домен второго уровня, | + | > Для платформы Tantor обязательно домен второго уровня, |
- | ---- | + | > Если планируете проходить практику на своем стенде, |
- | >Если планируете проходить практику на своем стенде, то для создания ВМ платформы Tantor обязательно используем host-passthrough в настройках ВМ гипервизора (прямой доступ к аппаратным ресурсам процессора) с доступам к инструкциям sse и avx. | + | > Иначе не заработает модуль Advanced analytics |
- | > | + | > Как проверить что все хорошо - на вывод команд в CLI на хосте tplatform |
- | + | ||
- | >Как проверить что все хорошо - на вывод команд в CLI на хосте tplatform | + | |
- | + | ||
- | ---- | + | |
Обе инструкции должны выводить ответ: | Обе инструкции должны выводить ответ: | ||
Строка 43: | Строка 33: | ||
</ | </ | ||
- | ## Далее с bastion подключаемся на хосты tplatform, db1, db2, db3, haproxy1, haproxy2 | + | Далее с bastion подключаемся на хосты tplatform, db1, db2, db3, haproxy1, haproxy2 |
- | ## !!! В рамках практикума подключение без пароля к хостам внутри стенда | + | |
- | ## можно выполнять только с bastion, между узлами недоступно. | + | |
+ | > !!! В рамках практикума подключение без пароля к хостам внутри стенда можно выполнять только с bastion, между узлами недоступно. | ||
+ | |||
+ | < | ||
ssh tplatform | ssh tplatform | ||
ssh db1 | ssh db1 | ||
Строка 53: | Строка 44: | ||
ssh haproxy1 | ssh haproxy1 | ||
ssh haproxy2 | ssh haproxy2 | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Прибивка статики ip на хостах (!! На стендах практикума делать не нужно). ==== |
- | | + | |
- | ======================================================================================================== | + | |
- | ## На этапе подготовки важно, чтобы IP на хостах не менялись, | + | На этапе подготовки важно, чтобы IP на хостах не менялись, |
- | ## так как Платформа Tantor будет подключать агентов по IP | + | На стендах практикума это уже сделано, |
- | ## На стендах практикума это уже сделано, | + | |
- | ## это настроить через CLI linux. | + | |
- | ## Убедиться, | + | Убедиться, |
- | ## NetworkManager – более современный менеджер сетей. | + | NetworkManager – более современный менеджер сетей. |
- | ## Обычно он идет в комплекте с графическими окружениями Linux. | + | Обычно он идет в комплекте с графическими окружениями Linux. |
- | + | ||
- | ---------------------------------------------------------------- | + | |
- | NetworkManager включен, | + | |
- | ---------------------------------------------------------------- | + | |
+ | > NetworkManager включен, | ||
+ | < | ||
nmcli device status | nmcli device status | ||
+ | </ | ||
+ | Смотрим вывод в колонке STATE, если без управления, | ||
+ | Если да, в таком случае настройки лучше делать через | ||
+ | '' | ||
- | ## Смотрим вывод в колонке STATE, если без управления, | + | Установить статический IP на eth0 |
- | ## Если да, в таком случае настройки лучше делать через | + | < |
- | nmcli # (утилита терминале) | + | |
- | + | ||
- | # Установить статический IP на eth0 | + | |
sudo nmcli con add type ethernet con-name " | sudo nmcli con add type ethernet con-name " | ||
- | + | </ | |
- | # Активировать подключение | + | Активировать подключение |
+ | < | ||
sudo nmcli con up " | sudo nmcli con up " | ||
- | + | </ | |
- | ## | + | или |
+ | < | ||
nmtui # (текстовый интерфейс) в песевдографике терминала. | nmtui # (текстовый интерфейс) в песевдографике терминала. | ||
+ | </ | ||
- | ---------------------------------------------------------------- | + | ==== Настройка interfaces. |
- | | + | |
- | ---------------------------------------------------------------- | + | |
- | + | ||
- | ## Редактируем фал настроек сетевого интерфейса | + | |
- | ## пример: | + | |
+ | Редактируем фал настроек сетевого интерфейса | ||
+ | пример: | ||
+ | < | ||
sudo nano / | sudo nano / | ||
- | -------------------------------------------------- | + | </ |
+ | < | ||
auto lo | auto lo | ||
iface lo inet loopback | iface lo inet loopback | ||
Строка 111: | Строка 97: | ||
dns-nameservers 10.2.0.254 | dns-nameservers 10.2.0.254 | ||
dns-search example.dn | dns-search example.dn | ||
+ | </ | ||
+ | < | ||
source / | source / | ||
- | --------------------------------------------------- | + | </ |
- | + | ||
- | ## Проверить синтаксис файла (опционально) без отключения loopback | + | |
+ | Проверить синтаксис файла (опционально) без отключения loopback | ||
+ | < | ||
sudo ifdown -a --exclude=lo && sudo ifup -a | sudo ifdown -a --exclude=lo && sudo ifup -a | ||
- | + | </ | |
- | ## Перезагрузка сервиса networking для применения конфигурации | + | Перезагрузка сервиса networking для применения конфигурации |
+ | < | ||
sudo systemctl restart networking | sudo systemctl restart networking | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Проверяем версии ОС Astra Linux и уровня защищенности на всех узлах. ==== |
- | | + | < |
- | ======================================================================================================== | + | |
cat / | cat / | ||
cat / | cat / | ||
+ | </ | ||
- | ## Режимы защищенности Astra Linux (0 - Орел, 1 - Воронеж, | + | Режимы защищенности Astra Linux (0 - Орел, 1 - Воронеж, |
- | ## Проверить уровень защищенности ОС согласно требования заказчика: | + | Проверить уровень защищенности ОС согласно требования заказчика: |
+ | < | ||
sudo astra-modeswitch get | sudo astra-modeswitch get | ||
sudo astra-modeswitch getname | sudo astra-modeswitch getname | ||
+ | </ | ||
- | ## если необходимо сменить уровень защищенности, | + | если необходимо сменить уровень защищенности, |
- | ## при условии, | + | < |
- | ## на Astra Linux server (1 - Воронеж или 2 - Смоленск). | + | |
sudo astra-modeswitch set 0 ## или 1 или 2 | sudo astra-modeswitch set 0 ## или 1 или 2 | ||
sudo reboot | sudo reboot | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Просмотр подключенных репозиториев для получения или обновления пакетов и ОС. ==== |
- | | + | |
- | ======================================================================================================== | + | |
+ | < | ||
grep -r ^deb / | grep -r ^deb / | ||
- | + | </ | |
- | ## Для каждой версии ОС используются свои публичные интернет репозитории, | + | Для каждой версии ОС используются свои публичные интернет репозитории, |
- | ## https:// | + | [[https:// |
- | ## https:// | + | [[https:// |
- | ## стандартные путь сслылок на публичные репозитории для ОС описаны тут: | + | стандартные путь сслылок на публичные репозитории для ОС описаны тут: |
+ | < | ||
sudo nano / | sudo nano / | ||
- | | + | </ |
+ | или | ||
+ | < | ||
sudo apt edit-sources | sudo apt edit-sources | ||
+ | </ | ||
- | ## Как правило указаны frozen ветки /uu/* оперативного обновления | + | > Как правило указаны frozen ветки /uu/* оперативного обновления для того, чтобы не произошло непреднамеренного обновление на самую последнюю версию ОС по ветке, которая может привести к не стабильной работе ПО Tantor. |
- | ## для то го, чтобы не произошло непреднамеренного обновление | + | > для получения более свежего релиза пакетов достаточно сменить uu/1 на uu/2, сохранить. |
- | ## на самую последнюю версию ОС по ветке, | + | > В закрытом сегменте заказчика используются свои репозитории или ISO образы с личного кабинета Астра. |
- | ## которая может привести к не стабильной работе ПО Tantor. | + | |
- | ## для получения более свежего релиза пакетов достаточно сменить uu/1 на uu/2, сохранить. | + | |
- | ## В закрытом сегменте заказчика используются свои репозитории или ISO образы с личного кабинета Астра. | + | |
+ | < | ||
deb https:// | deb https:// | ||
deb https:// | deb https:// | ||
- | + | </ | |
- | ## Затем выполнить обновление списка пакетов | + | Затем выполнить обновление списка пакетов |
+ | < | ||
sudo apt update | sudo apt update | ||
- | + | </ | |
- | ## Если необходимо обновить всю ОС в зависимости от ситуации и требования заказчика. | + | Если необходимо обновить всю ОС в зависимости от ситуации и требования заказчика. |
+ | < | ||
sudo apt dist-upgrade | sudo apt dist-upgrade | ||
- | + | </ | |
- | ## Проверяем на всех хостах, | + | Проверяем на всех хостах, |
- | + | < | |
- | locale -a | + | locale -a ## смотрим какие уже скопмилированы |
sudo nano / | sudo nano / | ||
sudo locale-gen | sudo locale-gen | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Проверим файл hosts и имена для каждого из хостов. ==== |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Вывод имени хоста | + | |
+ | Вывод имени хоста | ||
+ | < | ||
hostname -f | hostname -f | ||
- | + | </ | |
- | ## Изменить имя хоста, если необходимо на каждом сервере свое | + | Изменить имя хоста, если необходимо на каждом сервере свое |
+ | < | ||
sudo hostnamectl set-hostname < | sudo hostnamectl set-hostname < | ||
+ | </ | ||
+ | Внести список хостов на каждом сервере и сохранить, | ||
+ | Но в целом это хорошая практика, | ||
+ | < | ||
+ | sudo nano /etc/hosts | ||
+ | </ | ||
+ | **Пример: | ||
- | ## Внести список хостов на каждом сервере и сохранить, | + | '' |
- | ## Но в целом это хорошая практика, | + | |
- | sudo nano /etc/hosts | + | '' |
- | ## Пример: | + | '' |
- | 10.2.0.2 | + | '' |
- | 10.2.0.11 | + | |
- | 10.2.0.12 | + | |
- | 10.2.0.13 | + | |
- | 10.2.0.21 | + | |
- | 10.2.0.22 | + | |
- | ## Проверим | + | '' |
+ | '' | ||
+ | |||
+ | Проверим | ||
+ | < | ||
cat /etc/hosts | cat /etc/hosts | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Установка утилит и пакетов. ==== |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## На все хосты устанавливаем | + | |
+ | На все хосты устанавливаем | ||
+ | < | ||
sudo apt install htop iperf wget chrony nmap bash-completion -y | sudo apt install htop iperf wget chrony nmap bash-completion -y | ||
+ | </ | ||
- | ## Зависимости нужны для Tantor СУБД на хостах db1 db2 db3 | + | > Зависимости нужны для Tantor СУБД на хостах db1 db2 db3 |
- | ## sudo apt install libllvm13 libpython3.11 libxsldb1.1 libz3-4 lsof apt-transport-https gnupg -y | + | < |
- | ## При установке пакета СУБД Tantor их сам запросит и установит через сетевой репозиторий. | + | sudo apt install libllvm13 libpython3.11 libxsldb1.1 libz3-4 lsof apt-transport-https gnupg -y |
+ | </ | ||
+ | > При установке пакета СУБД Tantor их сам запросит и установит через сетевой репозиторий. | ||
- | ## На хосте tplatform устанавливаем графику и браузер, | ||
+ | На хосте tplatform устанавливаем графику и браузер, | ||
+ | < | ||
sudo apt install docker.io docker-compose firefox xrdp fly-all-main -y | sudo apt install docker.io docker-compose firefox xrdp fly-all-main -y | ||
- | + | </ | |
- | ## Проверить Docker версию на хосте tplatform | + | Проверить Docker версию на хосте tplatform |
+ | < | ||
docker -v && docker-compose -v | docker -v && docker-compose -v | ||
- | + | </ | |
- | ## Полный вывод | + | Полный вывод |
+ | < | ||
docker version | docker version | ||
docker-compose version | docker-compose version | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Cлужба синхронизации времени, |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Ставим автозагрузку службы | + | |
+ | Ставим автозагрузку службы | ||
+ | < | ||
sudo systemctl enable chrony | sudo systemctl enable chrony | ||
- | + | </ | |
- | ## Проверка статуса | + | Проверка статуса |
+ | < | ||
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 | ||
+ | </ | ||
- | ## В Chrony список серверов задаётся в конфигурационном файле / | + | В Chrony список серверов задаётся в конфигурационном файле / |
- | ## После редактирования перезапустит службу sudo systemctl restart chrony | + | После редактирования перезапустит службу sudo systemctl restart chrony |
+ | < | ||
timedatectl | timedatectl | ||
timedatectl list-timezones | timedatectl list-timezones | ||
sudo timedatectl set-timezone < | sudo timedatectl set-timezone < | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Проверка сетевой доступности портов ==== |
- | | + | |
- | На узле СУБД утилита iperf запускается в режиме сервера (ключ -s), | + | |
- | по умолчанию используется протокол TCP, выбран порт 5432 (ключ -p) | + | |
- | ======================================================================================================== | + | |
- | ## Пример проверки порта запускаем iperf в режиме сервера | + | На узле СУБД утилита |
+ | Пример проверки порта запускаем iperf в режиме сервера на хостах СУБД db1 db2 db3 | ||
+ | < | ||
iperf -s -p 5432 | iperf -s -p 5432 | ||
+ | </ | ||
- | ## На tplatform запускается в режиме клиента (указывается узлы СУБД по очереди) | + | На tplatform запускается в режиме клиента (указывается узлы СУБД по очереди) |
+ | < | ||
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 | ||
+ | </ | ||
- | ## или через утилиту nmap: | + | или через утилиту nmap: |
- | ## -sT - проверка по протоколу TCP | + | |
- | ## -p - номер, проверяемого порта | + | |
- | ## <IP адрес> | + | |
- | ## Пример, | + | |
+ | > -sT - проверка по протоколу TCP | ||
+ | > -p - номер, проверяемого порта | ||
+ | > <IP адрес> | ||
+ | |||
+ | |||
+ | Пример, | ||
+ | < | ||
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 | ||
+ | </ | ||
- | ## Посмотреть табличку с портами на каждом хосте, когда все развернете. | + | Посмотреть табличку с портами на каждом хосте, когда все развернете. |
+ | < | ||
ss -ntlup | ss -ntlup | ||
+ | </ | ||
- | ======================================================================================================== | + | ===== (Этап 2) Подготовка===== |
- | (Этап 2) | + | |
- | | + | Скачиваем пакет СУБД Tantor и скрипт инсталятор |
- | https:// | + | [[https:// |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Скачиваем скрипт установки через публичный репозиторий Tantor | + | |
- | ## Будем работать под root, но можно также и через sudo | + | |
+ | Скачиваем скрипт установки через публичный репозиторий Tantor | ||
+ | Будем работать под root, но можно также и через sudo | ||
+ | < | ||
sudo -i | sudo -i | ||
mkdir distr | mkdir distr | ||
Строка 304: | Строка 302: | ||
wget https:// | wget https:// | ||
chmod +x db_installer.sh | chmod +x db_installer.sh | ||
+ | </ | ||
- | ## Если закрытый сегмент, | + | Если закрытый сегмент, |
- | ## Tantor СУБД нужной версии и скрипт инсталяции предварительно на к себе носитель из: | + | Tantor СУБД нужной версии и скрипт инсталяции предварительно на к себе носитель из: |
- | + | [[https:// | |
- | https:// | + | |
- | ## be-версия Tantor СУБД для тестового использования можно скачать | + | be-версия Tantor СУБД для тестового использования можно скачать |
+ | [[https:// | ||
- | https://nexus-public.tantorlabs.ru | + | Устанавливаем пакет СУБД Tantor на db1 db2 db3. |
+ | [[https://docs.tantorlabs.ru/ | ||
- | ======================================================================================================== | ||
- | Устанавливаем пакет СУБД Tantor на db1 db2 db3. | ||
- | https:// | ||
- | ======================================================================================================== | ||
- | 1. Установка через доступ интернета be-версия | + | ==== Установка через доступ интернета be-версия |
- | ---------------------------------------------------------------- | + | |
- | + | ||
- | ## Определим репозиторий | + | |
+ | Определим репозиторий | ||
+ | < | ||
export NEXUS_URL=" | export NEXUS_URL=" | ||
+ | </ | ||
- | ## Установка из интернета через скрипт установки СУБД Tantor | + | > Установка из интернета через скрипт установки СУБД Tantor |
- | ## Описание ключей можно посмотреть внутри скрипта | + | > Описание ключей можно посмотреть внутри скрипта |
- | ## --do-initdb | + | > --do-initdb |
- | ## --major-version=16 | + | > --major-version=16 |
- | ## --edition=be | + | > --edition=be |
+ | |||
+ | < | ||
./ | ./ | ||
--do-initdb \ | --do-initdb \ | ||
--major-version=16 \ | --major-version=16 \ | ||
--edition=be | --edition=be | ||
+ | </ | ||
- | ## Пример установки в фоновом режиме с выводом в лог файл | + | Пример установки в фоновом режиме с выводом в лог файл |
- | ## Конструкция в Linux системах "nohup ***** > install_tantor_be_serever.log 2>&1 &" | + | Конструкция в Linux системах |
- | ## Работает для любого выполнения команд или скриптов, | + | Работает для любого выполнения команд или скриптов, |
- | ## рекомендую изучить дополнительно через поиск в интернете работу с Linux CLI | + | рекомендую изучить дополнительно через поиск в интернете работу с Linux CLI |
+ | < | ||
nohup ./ | nohup ./ | ||
--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 & | ||
- | + | </ | |
- | ## Чтение изменения лога в реальном времени | + | Чтение изменения лога в реальном времени |
+ | < | ||
tail -1000f install_tantor_be_serever.log | tail -1000f install_tantor_be_serever.log | ||
+ | </ | ||
- | ---------------------------------------------------------------- | + | ==== Способ установки локально, |
- | 2. Способ установки локально, | + | |
- | | + | |
- | ---------------------------------------------------------------- | + | |
- | + | ||
- | ## Пример копирования файлов на стенд из практикума | + | |
- | ## Скачиваем файллы из личного кабинета астры https:// | + | |
- | ## к себе например в каталог /tmp | + | |
- | ## Перейдите в каталог, | + | |
+ | Пример копирования файлов на стенд из практикума | ||
+ | Скачиваем файллы из личного кабинета астры [[https:// | ||
+ | Перейдите в каталог, | ||
+ | < | ||
cd /tmp | cd /tmp | ||
- | + | </ | |
- | ## Копируем сначала на bastion в /tmp | + | Копируем сначала на bastion в /tmp |
+ | < | ||
scp -i / | scp -i / | ||
scp -i / | scp -i / | ||
- | + | </ | |
- | ## Далее подключившись по ssh на bastion и с него копируем на db1 db2 db3 | + | Далее подключившись по ssh на bastion и с него копируем на db1 db2 db3 |
+ | < | ||
ssh -i / | ssh -i / | ||
cd /tmp | cd /tmp | ||
Строка 378: | Строка 374: | ||
scp tantor-be-server-16_16.8.0_amd64.deb tantor@db3:/ | scp tantor-be-server-16_16.8.0_amd64.deb tantor@db3:/ | ||
scp db_installer.sh tantor@db2:/ | scp db_installer.sh tantor@db2:/ | ||
- | + | </ | |
- | ## Подключаемся через bastion к хостам db1, db2, db3 | + | Подключаемся через bastion к хостам db1, db2, db3 |
+ | < | ||
ssh db1 | ssh db1 | ||
sudo -i | sudo -i | ||
cd /tmp | cd /tmp | ||
chmod +x db_installer.sh | chmod +x db_installer.sh | ||
- | + | </ | |
- | ## Установка пакета через скрипт с инициализацией БД | + | Установка пакета через скрипт с инициализацией БД |
+ | < | ||
./ | ./ | ||
--from-file=/ | --from-file=/ | ||
--do-initdb | --do-initdb | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== После установки пакета СУБД, назначаем права пользователя postgres на структуру каталогов на хостах |
- | | + | < |
- | | + | |
- | ======================================================================================================== | + | |
sudo chown -R postgres: | sudo chown -R postgres: | ||
+ | </ | ||
+ | Сменим пароль на УЗ postgres в операционной системе на хостах | ||
- | ## Сменим пароль на УЗ postgres в операционной системе на хостах | ||
- | ## запомните или запишите, | ||
- | sudo passwd postgres | + | > запомните или запишите, |
- | + | ||
- | ## Посмотрим информацию | + | |
+ | < | ||
+ | sudo passwd postgres | ||
+ | </ | ||
+ | Посмотрим информацию о БД | ||
+ | < | ||
sudo -iu postgres pg_controldata / | sudo -iu postgres pg_controldata / | ||
- | + | </ | |
- | ## посмотреть процесс работы инстанса | + | посмотреть процесс работы инстанса |
+ | < | ||
sudo -iu postgres cat / | sudo -iu postgres cat / | ||
sudo -iu postgres psql -c " | sudo -iu postgres psql -c " | ||
+ | </ | ||
+ | Допускается установка нескольких экземпляра разной версии СУБД на один узел. | ||
+ | При этом название экземпляров, | ||
- | ## Допускается установка нескольких экземпляра разной | + | ==== Проверка службы |
- | ## При этом название экземпляров, используемые порты и | + | |
- | ## расположение каталогов | + | |
- | ======================================================================================================== | ||
- | Проверка службы и автозагрузка сервиса СУБД Tantor. | ||
- | ======================================================================================================== | ||
- | ## Ключи утилиты systemctl: | + | > Ключи утилиты systemctl: |
- | ## status - показать запущен (loaded) сервис и его состояние (active) работает | + | > status - показать запущен (loaded) сервис и его состояние (active) работает |
+ | < | ||
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 | ||
- | + | </ | |
- | ## Посмотреть запущенные процессы | + | Посмотреть запущенные процессы |
+ | < | ||
ps -efH | grep tantor | ps -efH | grep tantor | ||
- | + | </ | |
- | ## Проверка запуска сервиса СУБД Tantor по журналам | + | Проверка запуска сервиса СУБД Tantor по журналам |
- | ## Проверка осуществляется запуском утилиты journalctl с ключем -u , | + | Проверка осуществляется запуском утилиты journalctl с ключем -u , казывающим наименование сервиса, |
- | ## указывающим наименование сервиса, | + | < |
sudo journalctl -u tantor-be-server-16.service | sudo journalctl -u tantor-be-server-16.service | ||
+ | </ | ||
- | ======================================================================================================== | ||
- | Настройка сетевых соединений к серверу СУБД производится в файлах | ||
- | параметров 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) |
- | (Этап 3) | + | |
- | Установка Платформы Tantor. | + | Скачиваем и Распаковываем архив с Платформой Tantor. |
- | ======================================================================================================== | + | [[https:// |
- | | + | |
- | https:// | + | |
- | ======================================================================================================== | + | |
- | 1. Способ при наличии доступа в интернет | + | ==== Способ при наличии доступа в интернет |
- | ---------------------------------------------------------------- | + | |
- | + | ||
- | ## Загрузим инсталлятор на хост tplatform согласно документации. | + | |
- | ## Всегда смотрите новую версию по ссылке выше. | + | |
+ | Загрузим инсталлятор на хост tplatform согласно документации. | ||
+ | Всегда смотрите новую версию по ссылке выше. | ||
+ | < | ||
sudo -i | sudo -i | ||
mkdir distr | mkdir distr | ||
cd distr | cd distr | ||
wget https:// | wget https:// | ||
- | + | </ | |
- | ## Распакуем из архива | + | Распакуем из архива |
+ | < | ||
tar -xvf tantor-eco-5.3.0.tar.gz | tar -xvf tantor-eco-5.3.0.tar.gz | ||
+ | </ | ||
- | ------------------------------------------------------------------------------- | + | ==== Способ, |
- | 2. Способ, | + | |
- | ------------------------------------------------------------------------------- | + | |
- | + | ||
- | ## Скачиваем файллы из личного кабинета астры https:// | + | |
- | ## к себе например в каталог /tmp | + | |
+ | Скачиваем файллы из личного кабинета астры [[https:// | ||
+ | < | ||
cd /tmp | cd /tmp | ||
wget https:// | wget https:// | ||
- | + | </ | |
- | ## Пример копирования файлов на стенд tplatform из практикума | + | Пример копирования файлов на стенд tplatform из практикума |
- | ## Копируем сначала на bastion в /tmp | + | Копируем сначала на bastion в /tmp |
+ | < | ||
scp -i / | scp -i / | ||
- | + | </ | |
- | ## Далее подключившись по ssh на bastion и с него копируем на tplatform | + | Далее подключившись по ssh на bastion и с него копируем на tplatform |
+ | < | ||
ssh -i / | ssh -i / | ||
cd /tmp | cd /tmp | ||
scp tantor-eco-5.3.0.tar.gz tantor@tplatform:/ | scp tantor-eco-5.3.0.tar.gz tantor@tplatform:/ | ||
- | + | </ | |
- | ## Далее с bastion хоста подключаемся на хост tplatform | + | Далее с bastion хоста подключаемся на хост tplatform |
+ | < | ||
ssh tplatform | ssh tplatform | ||
sudo -i | sudo -i | ||
cd /tmp | cd /tmp | ||
+ | </ | ||
+ | Распакуем из архива | ||
+ | < | ||
+ | tar -xvf tantor-eco-5.3.0.tar.gz | ||
+ | </ | ||
- | ## Распакуем | + | ==== Инсталяция Платформы Tantor. ==== |
- | tar -xvf tantor-eco-5.3.0.tar.gz | ||
- | ======================================================================================================== | + | [[https:// |
- | Инсталяция Платформы Tantor. | + | |
- | | + | |
- | ======================================================================================================== | + | |
- | # Для установки Платформы на Astra Linux версии 1.8.2 | ||
- | # необходимо переключить уровень безопасности для docker на astra-sec-level-6 | ||
+ | Для установки Платформы на Astra Linux версии 1.8.2 необходимо переключить уровень безопасности для docker на astra-sec-level-6 | ||
+ | < | ||
sudo mkdir -p / | sudo mkdir -p / | ||
sudo nano / | sudo nano / | ||
- | + | </ | |
- | ## Вставляем и сохраняем | + | Вставляем и сохраняем |
+ | < | ||
{ | { | ||
" | " | ||
" | " | ||
} | } | ||
- | + | </ | |
- | ## Перезапускаем службу docker | + | Перезапускаем службу docker |
+ | < | ||
sudo systemctl restart docker | sudo systemctl restart docker | ||
- | + | </ | |
- | ## Запуск установки из каталога, | + | Запуск установки из каталога, |
+ | < | ||
sudo ./installer | sudo ./installer | ||
+ | </ | ||
+ | В ходе интерактивной установки будут запрошены данные: | ||
+ | ^ Параметр ^ Значение ^ Описание ^ | ||
+ | | **Tantor Platform administrator email:** | < | ||
+ | | **Tantor Platform administrator name:** | < | ||
+ | | **Tantor Platform domain name:** | < | ||
+ | | **SSL certificates match domain name**: | N | Cертификаты SSL для имени домена Платформы, | ||
+ | | **Сreate the self-signed certificates: | ||
+ | | **set integration with SMTP server:** | N | Настройки сервера почты в рамках практикума пропускаем | | ||
- | ## В ходе интерактивной | + | если бы указывали настройки сервера |
+ | ^ Параметр ^ Описание ^ | ||
+ | | **SMTP server domain name:** | доменное имя сервера электронной | ||
+ | | **SMTP server domain name port** | порт сервера электронной почты | | ||
+ | | **SMTP server user email** | имя постового ящика на который | ||
+ | | **SMTP server user password** | пароль почтового ящика | | ||
- | Tantor Platform administrator email: | ||
- | Tantor Platform administrator name: ## Имя администратора Платформы Tantor, пример | ||
- | Tantor Platform domain name: ## Доменное имя Платформы Tantor, пример | ||
- | SSL certificates match domain name: N ## Cертификаты SSL для имени домена Платформы, | ||
- | Сreate the self-signed certificates: | ||
- | set integration with SMTP server: | ||
- | ## если | + | > Если |
- | SMTP server domain name: ## доменное | + | |
- | SMTP server domain name port ## порт сервера электронной почты | + | |
- | SMTP server user email ## имя постового ящика на который будут отправляться | + | |
- | 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 | ||
- | ## ВАЖНО!!! После установки, | + | > ВАЖНО!!! После установки, |
- | Tantor Platform version 5.3.0 is installed and running. | ||
- | Please connect to Tantor Platform using: | ||
- | Tantor Platform URL: https:// | ||
- | Tantor Platform | ||
- | Tantor Platform | ||
- | ======================================================================================================== | + | '' |
- | | + | '' |
- | ======================================================================================================== | + | '' |
+ | '' | ||
+ | '' | ||
- | Для стенда практикума подключаемся по RDP на хост tplatform и | + | ==== Подключение к Платформе, активация и настройка агента на узле сервера СУБД. ==== |
- | выполняем выше указанные действия в браузере. | + | |
- | Доступ по RDP на tplatform < | + | |
- | # login: | + | |
- | # pass: | + | |
+ | подключаемся по RDP на хост tplatform и выполняем выше указанные действия в браузере. | ||
+ | Доступ по RDP на tplatform < | ||
+ | '' | ||
+ | '' | ||
- | Первое подключение к Платформе с помощью браузера, | + | * Первое подключение к Платформе с помощью браузера, |
- | Согласиться с политикой лицензирования и нажать Ок | + | |
- | Установить новый пароль суперпользователя Платформы | + | |
- | Зайти в тенант | + | |
- | Создать новое рабочее пространство New workspace (имя произвольно) | + | |
- | ======================================================================================================== | + | ==== Проверки успешности установки и запуска сервисов Платформы. Состояние контейнеров Платформы можно посмотреть командами. ==== |
- | | + | |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Убедиться, | + | |
+ | Убедиться, | ||
+ | < | ||
docker ps | docker ps | ||
- | + | </ | |
- | ## Если необходимо перезагрузить платформу | + | Если необходимо перезагрузить платформу |
+ | < | ||
cd / | cd / | ||
docker-compose stop | docker-compose stop | ||
docker-compose start | docker-compose start | ||
docker-compose ps | docker-compose ps | ||
- | + | </ | |
- | ## Порты на узле Платформы | + | Порты на узле Платформы |
+ | < | ||
ss -ntlup | ss -ntlup | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Запуск утилиты диагностики для Платформы sdc-tantor, идет в комплекте архива. В случае неудачного завершения установки или обновления платформы. ==== |
- | | + | |
- | | + | |
- | https:// | + | |
- | ======================================================================================================== | + | |
+ | [[https:// | ||
+ | |||
+ | < | ||
cd distr | cd distr | ||
Строка 606: | Строка 588: | ||
./ | ./ | ||
+ | </ | ||
+ | Архив создан и сохранён в: | ||
+ | '' | ||
- | ## Архив создан и сохранён в: | + | > Будет выполнен сбор системной конфигурации и диагностической информации в основном о работе докер контейнеров и информации о хосте. |
- | ## sdc-report_tplatform_20250620_163622.tar.gz | + | > Приложите этот файл в созданную в техническую поддержку заявку. |
- | ## Будет выполнен сбор системной конфигурации и диагностической информации | + | |
- | ## в основном о работе докер контейнеров и информации о хосте. | + | |
- | ## Приложите этот файл в созданную в техническую поддержку заявку. | + | |
- | ======================================================================================================== | + | ===== (этап 4) установка агента Tantor и последующем добавлении инстанса СУБД в платформу ===== |
- | (этап 4) | + | |
- | | + | Для установки агента Tantor и последующем добавлении инстанса СУБД в платформу необходимо перейти на сервер СУБД и произвести предложенные Платформой действия. |
- | | + | [[https:// |
- | https:// | + | |
- | !! Установку агента всегда начинаем на лидере в кластере !! | ||
- | ======================================================================================================== | ||
- | 1. Открыть рабочее пространство в Платформе | + | > !! Установку агента всегда начинаем на лидере в кластере |
- | 2. Добавить | + | |
- | 3. Выбрать тип инстанса (в наше примере Tantor) | + | |
- | 4. Указать IP адрес, порт и имя БД | + | |
- | 5. Платформа сообщает, | + | |
- | 6. Далее необходимо выполнить ряд предлагаемых Платформой действий на узле сервера СУБД, для исключения ошибки скопировать | + | |
- | каждое действие в буфер можно кликнув на пиктограмму в конце каждой строки. | + | |
- | ## Узнаем IP адрес нашего сервера СУБД | ||
- | |||
- | ip a | ||
- | ## пример вывода: | + | * Элемент ненумерованного спискаОткрыть рабочее пространство в Платформе |
+ | * Элемент ненумерованного спискаДобавить новый инстанс (сервер СУБД) Add instance | ||
+ | * Элемент ненумерованного спискаВыбрать тип инстанса (в наше примере Tantor) | ||
+ | * Элемент ненумерованного спискаУказать IP адрес, порт и имя БД | ||
+ | * Элемент ненумерованного спискаПлатформа сообщает, | ||
+ | * Элемент ненумерованного спискаДалее необходимо выполнить ряд предлагаемых Платформой действий на узле сервера СУБД, для исключения ошибки скопировать, | ||
+ | Узнаем IP адрес нашего сервера СУБД | ||
+ | < | ||
+ | ip a | ||
+ | </ | ||
+ | пример вывода: | ||
+ | < | ||
inet 10.2.0.11/ | inet 10.2.0.11/ | ||
- | + | </ | |
- | ## Установка PMA агента Платформы Tantor при условии если везде вход по паролю | + | Установка PMA агента Платформы Tantor при условии если везде вход по паролю и через графический интерфейс команда не проходит, |
- | ## и через графический интерфейс команда не проходит, | + | читайте оф документацию |
- | ## читайте оф документацию https:// | + | пример: |
- | ## пример: | + | < |
pmaagent configure --config_postgres_patroni -h 10.2.0.11 -p 5432 -d postgres -U postgres -W postgres -P 8008 -D | pmaagent configure --config_postgres_patroni -h 10.2.0.11 -p 5432 -d postgres -U postgres -W postgres -P 8008 -D | ||
- | + | </ | |
- | ## дополнительно смотрите тех документацию по ссылке выше, | + | дополнительно смотрите тех документацию по ссылке выше, а также |
- | ## а также help агента после его установки | + | < |
pmaagent --help | pmaagent --help | ||
pmaagent instances add --help | pmaagent instances add --help | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Проверка службы старта агента. ==== |
- | | + | |
- | ======================================================================================================== | + | |
+ | < | ||
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 | ||
+ | </ | ||
- | ## Если нет связи с агентом, | + | Если нет связи с агентом, |
+ | < | ||
systemctl stop pmaagent.service | systemctl stop pmaagent.service | ||
systemctl start pmaagent.service | systemctl start pmaagent.service | ||
+ | </ | ||
+ | Конфиг агента \\ | ||
+ | ''/ | ||
+ | Лог агента \\ | ||
+ | ''/ | ||
- | ## Конфиг агента | + | ==== Установка дополнительных элементов для взаимодействия Птатформы и СУБД. (расширений / EXTENSION в СУБД Tantor)(pg_stat_statements, |
- | / | + | [[https:// |
- | + | ||
- | ## Лог агента | + | |
- | + | ||
- | / | + | |
- | + | ||
- | ======================================================================================================== | + | |
- | Установка дополнительных элементов для взаимодействия Птатформы и СУБД. | + | |
- | (расширений / EXTENSION в СУБД Tantor) | + | |
- | (pg_stat_statements, | + | |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Для работы Advanced analytics, создание ключей RSA под root на сервере tplatform | + | |
+ | Для работы Advanced analytics, создание ключей RSA под root на сервере tplatform | ||
+ | < | ||
sudo -i | sudo -i | ||
ssh-keygen -t rsa | ssh-keygen -t rsa | ||
- | + | </ | |
- | ## Скопируйте в нужные директории созданные ключи следующей командой: | + | Скопируйте в нужные директории созданные ключи следующей командой: |
+ | < | ||
cp / | cp / | ||
- | + | </ | |
- | ## Скопируйте созданный публичный ключ на сервер базы данных, | + | Скопируйте созданный публичный ключ на сервер базы данных, |
+ | < | ||
ssh-copy-id -i / | ssh-copy-id -i / | ||
ssh-copy-id -i / | ssh-copy-id -i / | ||
ssh-copy-id -i / | ssh-copy-id -i / | ||
- | + | </ | |
- | ## Проверьте возможность зайти на сервер базы данных с помощью добавленного ключа: | + | Проверьте возможность зайти на сервер базы данных с помощью добавленного ключа: |
+ | < | ||
ssh postgres@db1 | ssh postgres@db1 | ||
ssh postgres@db2 | ssh postgres@db2 | ||
ssh postgres@db3 | ssh postgres@db3 | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Настройка параметров и расширений / EXTENSION на наблюдаемой СУБД: pg_stat_statements, |
- | | + | |
- | | + | |
- | Текущий вариант через "alter system set", создаст отдельный файл | + | ---- |
- | / | + | |
- | который будет преобладать в приоритете при запуске СУБД над файлом postgresql.conf, | + | |
- | что очень удобно, | + | |
- | Данный способ работает только в рамках текущего сервера СУБД в standalone. | + | |
- | В отказоустойчивых кластерах типа Patroni, необходимо использовать единую конфигурацию для всех узлов. | + | > Текущий вариант через "alter system set", создаст отдельный файл / |
- | Также данные настройки можно применить | + | > Данный способ |
- | ======================================================================================================== | + | |
- | ## Подключаемся к одному из серверов, где установлена СУБД Tantor, | + | > В отказоустойчивых кластерах типа Patroni, необходимо использовать |
- | ## В дальнейшем эти операции нужно | + | > Также |
- | sudo -iu postgres psql | ||
- | |||
- | ## Выполняем команды на создание расширений и параметров: | ||
- | ## Если в параметре shared_preload_libraries уже указаны другие расширения, | ||
- | ## то добавить pg_stat_statements, | ||
+ | Подключаемся к одному из серверов, | ||
+ | В дальнейшем эти операции нужно выполнить на каждой наблюдаемой БД. | ||
+ | < | ||
+ | sudo -iu postgres psql | ||
+ | </ | ||
+ | Выполняем команды на создание расширений и параметров: | ||
+ | Если в параметре '' | ||
+ | < | ||
create EXTENSION pg_stat_statements; | create EXTENSION pg_stat_statements; | ||
create EXTENSION pg_store_plans; | create EXTENSION pg_store_plans; | ||
Строка 737: | Строка 707: | ||
alter system set log_destination = ' | alter system set log_destination = ' | ||
alter system set log_statement = ' | alter system set log_statement = ' | ||
- | + | </ | |
- | ## Перезагрузка СУБД и проверка сервиса СУБД, должно быть active (running) | + | Перезагрузка СУБД и проверка сервиса СУБД, должно быть |
+ | < | ||
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 | ||
- | + | </ | |
- | ## Добавляем параметры auto_explain | + | Добавляем параметры auto_explain |
+ | < | ||
sudo -iu postgres psql | sudo -iu postgres psql | ||
+ | </ | ||
+ | < | ||
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; | ||
Строка 753: | Строка 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(); | ||
- | + | </ | |
- | ## Сколько параметров установлено в файлах параметров конфигурации | + | Сколько параметров установлено в файлах параметров конфигурации |
+ | < | ||
select sourcefile, count(*) from pg_settings group by sourcefile; | select sourcefile, count(*) from pg_settings group by sourcefile; | ||
- | + | </ | |
- | ## Какие параметры из каких файлов конфигурации были считаны и применены при запуске экземпляра | + | Какие параметры из каких файлов конфигурации были считаны и применены при запуске экземпляра |
- | ## Так же через этот вывод можно проверить себя, правильно ли вы задали параметры до перезагрузки СУБД. | + | Так же через этот вывод можно проверить себя, правильно ли вы задали параметры до перезагрузки СУБД. |
+ | < | ||
select name, setting, substring(sourcefile, | select name, setting, substring(sourcefile, | ||
- | + | </ | |
- | ## Для корректной работы модуля Advanced Analytics | + | Для корректной работы модуля |
- | ## требуется добавить следующее разрешение в файле pg_hba.conf: | + | требуется добавить следующее разрешение в файле |
+ | < | ||
nano / | nano / | ||
- | + | </ | |
- | ---------------------------------------------------------------------- | + | < |
- | host postgres | + | host |
- | ---------------------------------------------------------------------- | + | </ |
- | + | Чтобы новые параметры | |
- | ## Чтобы новые параметры pg_hba.conf применились, | + | < |
sudo -iu postgres psql -c " | sudo -iu postgres psql -c " | ||
- | ## или restart наблюдаемой СУБД. | + | </ |
+ | или | ||
+ | < | ||
sudo systemctl restart tantor-be-server-16.service | sudo systemctl restart tantor-be-server-16.service | ||
- | + | </ | |
- | ## Чтобы изменения вступили в силу для Advanced analytics, на сервере tplatform перезапустите контейнер | + | Чтобы изменения вступили в силу для Advanced analytics, на сервере tplatform перезапустите контейнер |
+ | < | ||
docker restart pg_monitor_collector | docker restart pg_monitor_collector | ||
+ | </ | ||
+ | Посмотрите результат в Платформе, | ||
+ | Должны появится графики \\ | ||
+ | В модуле '' | ||
- | ## Посмотрите рузултат в Платформе, | + | ==== Ротация и очистка логов СУБД Tantor |
- | ## Должны появится графики | + | |
- | ## В модуле Advanced analytics инстансом БД также должны появиться данные | + | |
- | + | ||
- | ======================================================================================================== | + | |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Эти параметры уже заданы, | + | |
- | ## Для просмотра или изменения можно использовать Платформу Tantor | + | |
- | ## или командами в psql: | + | |
- | ## alter system set < | + | |
- | ## show < | + | |
+ | Эти параметры уже заданы, | ||
+ | Для просмотра или изменения можно использовать Платформу Tantor или командами в psql: \\ | ||
+ | '' | ||
+ | '' | ||
+ | < | ||
logging_collector = on # Включение сбора логов | logging_collector = on # Включение сбора логов | ||
log_directory = ' | log_directory = ' | ||
Строка 801: | Строка 770: | ||
log_rotation_age = 1d # Ротация ежедневно | log_rotation_age = 1d # Ротация ежедневно | ||
log_rotation_size = 10MB # Или при достижении размера | log_rotation_size = 10MB # Или при достижении размера | ||
- | + | </ | |
- | ## Посмотреть логи по примеру, | + | Посмотреть логи по примеру, |
+ | < | ||
less / | less / | ||
- | + | </ | |
- | ## Даем привилегии УЗ postgres на использование crontab | + | Даем привилегии УЗ postgres на использование crontab |
+ | < | ||
sudo usermod -aG crontab postgres | sudo usermod -aG crontab postgres | ||
- | + | </ | |
- | ## Логинимся под УЗ postgres | + | Логинимся под УЗ postgres |
+ | < | ||
su - postgres | su - postgres | ||
- | + | </ | |
- | ## Создаем скрипт очистки | + | Создаем скрипт очистки |
- | ## Вставляем строки, | + | Вставляем строки, |
- | ## Не забудьте указать правильный путь на ваши логи. | + | Не забудьте указать правильный путь на ваши логи. |
+ | < | ||
nano cleanup_logs.sh | nano cleanup_logs.sh | ||
- | + | </ | |
- | ----------------------------------------------------------------------------------------------- | + | < |
#!/bin/bash | #!/bin/bash | ||
find / | find / | ||
find / | find / | ||
- | ----------------------------------------------------------------------------------------------- | + | </ |
- | + | Применяем бит исполнения файла скрипта | |
- | ## Применяем бит исполнения файла скрипта | + | < |
chmod +x cleanup_logs.sh | chmod +x cleanup_logs.sh | ||
- | + | </ | |
- | ## Вставляем задание на выполнение в cron, сохраняем и проверяем. | + | Вставляем задание на выполнение в cron, сохраняем и проверяем. |
+ | < | ||
crontab -e | crontab -e | ||
- | + | </ | |
- | ------------------------------------------------------------------------------- | + | < |
- | 0 0 * * * / | + | </ |
- | ------------------------------------------------------------------------------- | + | проверяем, |
- | + | < | |
- | ## проверяем, | + | |
crontab -l | crontab -l | ||
+ | </ | ||
- | ======================================================================================================== | + | ===== (этап 5) Настройка репликации встроенными инструментами СУБД (ручной Failover/ |
- | (этап 5 по желанию) | + | |
- | Настройка репликации встроенными инструментами СУБД (ручной Failover/ | + | > Выполняется на Master db1 10.2.0.11 : |
- | ======================================================================================================== | + | |
- | + | ||
- | | + | |
- | ----------------------------------------------------- | + | |
- | + | ||
- | ## Создадим отдельного пользователя для репликации repl - имя пользователя | + | |
+ | Создадим отдельного пользователя для репликации repl - имя пользователя | ||
+ | < | ||
sudo -iu postgres psql | sudo -iu postgres psql | ||
CREATE ROLE repl WITH REPLICATION LOGIN ENCRYPTED PASSWORD ' | CREATE ROLE repl WITH REPLICATION LOGIN ENCRYPTED PASSWORD ' | ||
- | \password | + | \password |
+ | </ | ||
+ | Правим строчку в pg_hba, тут со стороны заказчика нужно указать, | ||
+ | Правило подключения, | ||
+ | Можно оставить так. | ||
- | ## Правим строчку в pg_hba, тут со стороны заказчика нужно указать, | ||
- | ## Правило подключения, | ||
- | ## Можно оставить так. | ||
- | ## !!! | + | > !!! чтобы не мучиться с корректировкой настроек после |
- | ## чтобы не мучиться с корректировкой настроек после pg_rewind, для repl можно указать всю подсеть 10.2.0.0/24 | + | |
+ | < | ||
sudo nano / | sudo nano / | ||
- | + | </ | |
- | --------------------------------------------------------------------------- | + | < |
host replication | host replication | ||
host all | host all | ||
- | --------------------------------------------------------------------------- | + | </ |
- | + | Добавляем параметры, | |
- | ## Добавляем параметры, | + | < |
nano / | nano / | ||
- | ## или через psql, параметры запишутся в postgresql.auto.conf | + | </ |
+ | или через | ||
+ | < | ||
sudo -iu postgres psql | sudo -iu postgres psql | ||
+ | </ | ||
+ | < | ||
alter system set listen_addresses = ' | alter system set listen_addresses = ' | ||
alter system set wal_level = replica; | alter system set wal_level = replica; | ||
Строка 888: | Строка 853: | ||
alter system set max_replication_slots = 10; | alter system set max_replication_slots = 10; | ||
alter system set wal_keep_size = ' | alter system set wal_keep_size = ' | ||
- | + | </ | |
- | ## После внесение изменений перезапускаем сервис | + | После внесение изменений перезапускаем сервис |
+ | < | ||
sudo systemctl restart tantor-be-server-16.service | sudo systemctl restart tantor-be-server-16.service | ||
+ | </ | ||
- | ----------------------------------------------------- | ||
- | Выполняем на Replica сервере db2 10.2.0.12 : | ||
- | ----------------------------------------------------- | ||
+ | > Выполняем на '' | ||
+ | |||
+ | < | ||
systemctl stop tantor-be-server-16.service | systemctl stop tantor-be-server-16.service | ||
su - postgres | su - postgres | ||
cd / | cd / | ||
- | + | </ | |
- | ## Сохраним архивную копию папки data если потребуется для восстановления или удаляем | + | Сохраним архивную копию папки |
+ | < | ||
tar -cvzf main_backup-`date +%s`.tgz data | tar -cvzf main_backup-`date +%s`.tgz data | ||
rm -rf data/ | rm -rf data/ | ||
- | + | </ | |
- | ## Переносим папку data c Master сервера на Реплику с созданием слота репликации -C -S db2_replica: | + | Переносим папку |
+ | < | ||
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 ' | + | </ |
- | + | >'' | |
- | ## Проверяем, | + | |
+ | Проверяем, | ||
+ | < | ||
ls -la data/ | ls -la data/ | ||
- | + | </ | |
- | ## Исправим на правильный listen_addresses | + | Исправим на правильный listen_addresses |
- | ## Если указывали listen_addresses = ' | + | Если указывали |
+ | < | ||
nano / | nano / | ||
- | ## или | + | </ |
+ | или | ||
+ | < | ||
nano / | nano / | ||
- | + | </ | |
- | listen_addresses = ' | + | < |
- | + | listen_addresses = ' | |
- | ## Корректируем правило в pg_hba.conf, | + | </ |
- | ## db1 смог подключаться к db2. | + | Корректируем правило в '' |
- | ## Если указывали 10.2.0.0/ | + | Если указывали 10.2.0.0/ |
+ | < | ||
nano / | nano / | ||
- | --------------------------------------------------------------------------- | + | </ |
+ | < | ||
host replication | host replication | ||
- | --------------------------------------------------------------------------- | + | </ |
- | + | Запустим сервис | |
- | ## Запустим сервис | + | < |
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 | ||
- | + | </ | |
- | ## На мастере db1 10.2.0.11 проверить реплику | + | На мастере |
+ | < | ||
sudo -iu postgres psql -c " | sudo -iu postgres psql -c " | ||
- | + | </ | |
- | ## На реплике db2 10.2.0.12 , вывод должен быть true | + | На реплике |
+ | < | ||
sudo -iu postgres psql -c " | sudo -iu postgres psql -c " | ||
SELECT pg_is_in_recovery();" | SELECT pg_is_in_recovery();" | ||
- | + | </ | |
- | ## Проверим репликацию, | + | Проверим репликацию, |
+ | < | ||
sudo -iu postgres psql -c " | sudo -iu postgres psql -c " | ||
- | + | </ | |
- | ## Проверим на реплике db2 10.2.0.12 | + | Проверим на реплике db2 10.2.0.12 |
+ | < | ||
sudo -iu postgres psql -c " | sudo -iu postgres psql -c " | ||
+ | </ | ||
+ | ==== Смена лидера. (меняем роли местами мастер -> реплику). ==== | ||
- | ======================================================================================================== | + | Проверить статус репликации на '' |
- | Смена лидера. (меняем роли местами мастер -> реплику). | + | Должно вернуть |
- | ======================================================================================================== | + | < |
- | + | ||
- | ## Проверить статус репликации на db2 10.2.0.12 | + | |
- | ## Должно вернуть true (реплика в режиме восстановления) | + | |
sudo -iu postgres psql | sudo -iu postgres psql | ||
SELECT pg_is_in_recovery(); | SELECT pg_is_in_recovery(); | ||
- | + | </ | |
- | ## Проверить отставание на db2 10.2.0.12 | + | Проверить отставание на '' |
+ | < | ||
SELECT pg_last_wal_receive_lsn(), | SELECT pg_last_wal_receive_lsn(), | ||
- | + | </ | |
- | ## смотрим статус синхронизации на мастере db1 10.2.0.11 | + | смотрим статус синхронизации на мастере |
+ | < | ||
sudo -iu postgres psql | sudo -iu postgres psql | ||
\x | \x | ||
SELECT * FROM pg_stat_replication; | SELECT * FROM pg_stat_replication; | ||
+ | </ | ||
- | ## Перед переключением мастера на реплику, | ||
- | ## записи СУБД на мастере db1, чтобы избежать потери данных. Это можно сделать с помощью команды: | ||
+ | > | ||
+ | |||
+ | Это можно сделать с помощью команды: | ||
+ | < | ||
ALTER SYSTEM SET default_transaction_read_only = ON; | ALTER SYSTEM SET default_transaction_read_only = ON; | ||
SELECT pg_reload_conf(); | SELECT pg_reload_conf(); | ||
- | + | </ | |
- | ## На реплике выполните db2 10.2.0.12 | + | На реплике выполните |
- | ## Относительно видео - скорректировано создание слота репликации db1_replica | + | Относительно видео - скорректировано создание слота репликации |
+ | < | ||
SELECT pg_promote(); | SELECT pg_promote(); | ||
SELECT pg_is_in_recovery(); | SELECT pg_is_in_recovery(); | ||
SELECT * FROM pg_create_physical_replication_slot(' | SELECT * FROM pg_create_physical_replication_slot(' | ||
SELECT slot_name, slot_type FROM pg_replication_slots; | SELECT slot_name, slot_type FROM pg_replication_slots; | ||
- | + | </ | |
- | ## Остановить сервис tantor на мастере db1 10.2.0.11 | + | Остановить сервис |
+ | < | ||
sudo systemctl stop tantor-be-server-16.service | sudo systemctl stop tantor-be-server-16.service | ||
- | + | </ | |
- | ## выполняем догон db1 10.2.0.11 , новой реплики относительно нового мастера. | + | выполняем догон |
- | ## Делаем pg_rewind под УЗ postgres, так как пользователь должен иметь права с доступом к функции pg_read_binary_file. | + | Делаем |
- | ## | + | либо при создании УЗ '' |
- | ## GRANT EXECUTE ON FUNCTION pg_read_binary_file(text, | + | '' |
- | ## В PostgreSQL доступ к функции pg_read_binary_file ограничен по соображениям безопасности, | + | В PostgreSQL доступ к функции pg_read_binary_file ограничен по соображениям безопасности, |
- | ## так как она позволяет читать произвольные файлы на сервере. | + | Обычно только суперпользователи (superuser) имеют к ней доступ. |
- | ## Обычно только суперпользователи (superuser) имеют к ней доступ. | + | < |
su - postgres | su - postgres | ||
pg_rewind --target-pgdata=/ | pg_rewind --target-pgdata=/ | ||
- | + | </ | |
- | ## Создайте файл standby.signal db1 10.2.0.11 | + | Создайте файл |
+ | < | ||
touch / | touch / | ||
rm -f / | rm -f / | ||
- | + | </ | |
- | ## Настроить старый мастер db1 10.2.0.11 как новую реплику. | + | Настроить старый мастер db1 10.2.0.11 как новую реплику. |
- | ## Отредактируем строчки в файле | + | Отредактируем строчки в файле |
- | ## primary_slot_name = ' | + | '' |
- | ## host=db2 , application_name=db1 | + | '' |
+ | < | ||
nano / | nano / | ||
+ | </ | ||
- | -------------------------------------------------------------------------------------------------------- | ||
- | primary_conninfo = ' | ||
- | primary_slot_name = ' | + | > primary_conninfo = ' |
- | -------------------------------------------------------------------------------------------------------- | + | > primary_slot_name = ' |
- | ## Корректируем правило в pg_hba.conf, | ||
- | ## db2 смог подключаться к db1. | ||
- | ## Если указывали 10.2.0.0/ | ||
+ | Корректируем правило в '' | ||
+ | Если указывали '' | ||
+ | < | ||
nano / | nano / | ||
- | + | </ | |
- | --------------------------------------------------------------------------- | + | < |
host replication | host replication | ||
- | --------------------------------------------------------------------------- | + | </ |
- | + | Запустить сервис | |
- | ## Запустить сервис tantor на db1 10.2.0.11 | + | < |
sudo systemctl start tantor-be-server-16.service | sudo systemctl start tantor-be-server-16.service | ||
- | + | </ | |
- | ## Проверим | + | Проверим на новом мастере |
- | ## на новом мастере db2 10.2.0.12: | + | < |
sudo -iu postgres psql -c " | sudo -iu postgres psql -c " | ||
- | + | </ | |
- | ## На новой реплике db1 10.2.0.11: | + | На новой реплике |
+ | < | ||
sudo -iu postgres psql -c " | sudo -iu postgres psql -c " | ||
SELECT pg_is_in_recovery();" | SELECT pg_is_in_recovery();" | ||
- | + | </ | |
- | ## Если мы хотим полностью разделить БД и сделать самостоятельными: | + | Если мы хотим полностью разделить БД и сделать самостоятельными: |
- | ## synchronous_commit = off делать ненужно, | + | '' |
- | ## отключает синхронную фиксацию записи данных транзакции на диск, | + | отключает синхронную фиксацию записи данных транзакции на диск, нарушит надежность сохранности данных. |
- | ## нарушит надежность сохранности данных. | + | < |
SELECT pg_promote(); | SELECT pg_promote(); | ||
alter system set synchronous_standby_names = ''; | alter system set synchronous_standby_names = ''; | ||
Строка 1057: | Строка 1022: | ||
SELECT | SELECT | ||
select pg_drop_replication_slot(' | select pg_drop_replication_slot(' | ||
+ | </ | ||
- | ======================================================================================================== | + | ===== (этап 6) Вариант сценария проведения нагрузочного тестирования. ===== |
- | (этап 6) | + | |
- | Вариант сценария проведения нагрузочного тестирования. | ||
- | ======================================================================================================== | ||
- | | + | > Нагрузочное тестирование предназначено для проверки того, как cистема будет работать под большим количеством пользователей, |
- | | + | > Количество моделируемых пользователей аналогично ожидаемому объему нагрузки пользователей в реальной жизни. |
- | | + | > Проверяется время отклика Системы, |
- | Количество моделируемых пользователей аналогично ожидаемому объему нагрузки | + | > Тестирование позволяет определить какое количество пользователей может обработать Система, |
- | | + | |
- | | + | |
- | | + | |
- | Тестирование позволяет определить какое количество пользователей может | + | |
- | | + | |
- | | + | > TPC-B , TPC-C (OLTP-систем (онлайн-транзакционная обработка)) |
- | | + | > * эталонный тест, используется для стресс-тестирования пиковой пропускной способности базы данных, |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | > TPC-H (OLAP-систем (онлайн-аналитическая обработка)) |
- | | + | > * эталонный тест, эмулирующий работу приложений бизнес-аналитики, |
- | | + | |
- | | + | |
- | | + | |
- | ======================================================================================================== | ||
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | [[https:// |
- | https:// | + | |
- | | + | |
- | | + | |
- | | + | [[https:// |
- | https:// | + | [[https:// |
- | https:// | + | |
- | ======================================================================================================== | + | ==== Пример использования pgbench. ==== |
- | | + | |
- | ======================================================================================================== | + | |
- | su - postgres | + | '' |
- | pgbench --help | + | '' |
- | + | ||
- | ## Создаем пустую БД для тестирования | + | |
+ | Создаем пустую БД для тестирования | ||
+ | < | ||
psql -c " | psql -c " | ||
- | + | </ | |
- | ## Размер БД может быть изменен согласно запросу Заказчика до необходимого значения, | + | Размер БД может быть изменен согласно запросу Заказчика до необходимого значения, |
- | ## Наполняем данными 1 гб (по требованию заказчика) | + | Наполняем данными 1 гб (по требованию заказчика) |
- | ## -i – опция инициализации; | + | -i – опция инициализации; |
- | ## необходимые таблицы и загрузит тестовыми данными базу данных. | + | -s 68 – параметр scale factor, определяет объём данных. |
- | ## -s 68 – параметр scale factor, определяет объём данных. | + | 100 000 ? 68 = 6 800 000 строк. |
- | ## 100 000 ? 68 = 6 800 000 строк. | + | < |
pgbench -h localhost -d tesdb2 -U postgres -i -s 68 | pgbench -h localhost -d tesdb2 -U postgres -i -s 68 | ||
- | + | </ | |
- | ## Проверяем размер создавшейся БД | + | Проверяем размер создавшейся БД |
- | ## Можно посмотреть результат в Платформе Tantor. | + | Можно посмотреть результат в Платформе Tantor. |
+ | < | ||
psql -c "\l+ tesdb2" | psql -c "\l+ tesdb2" | ||
- | + | </ | |
- | ## Выполняем эмуляцию нагрузки | + | Выполняем эмуляцию нагрузки |
+ | < | ||
pgbench -h localhost -p 5432 -c 90 -j 2 -t 100 tesdb2 ## 90 пользователей, | pgbench -h localhost -p 5432 -c 90 -j 2 -t 100 tesdb2 ## 90 пользователей, | ||
+ | </ | ||
+ | < | ||
pgbench -c 90 -j 25 -P 60 -T 200 tesdb2 | pgbench -c 90 -j 25 -P 60 -T 200 tesdb2 | ||
pgbench -n -c 90 -j 25 -T 200 tesdb2 -b select-only | pgbench -n -c 90 -j 25 -T 200 tesdb2 -b select-only | ||
+ | </ | ||
+ | -c — количество конкурентных подключений | ||
+ | -P — вывод информации каждые * сек | ||
+ | -T — длительность теста в сек | ||
+ | -j — число потоков | ||
+ | -n — не запускать VACUUM перед тестом. | ||
- | ## -c — количество конкурентных подключений | + | '' |
- | ## -P — вывод информации каждые * сек | + | |
- | ## -T — длительность теста в сек | + | |
- | ## -j — число потоков | + | |
- | ## -n — не запускать VACUUM перед тестом. | + | |
- | + | ||
- | TPS #могут варьироваться в зависимости от конфигурации системы, | + | |
- | Latency | + | '' |
- | ======================================================================================================== | + | ==== Пример использования sysbench. ==== |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Установка | + | |
+ | Установка | ||
+ | < | ||
sudo apt install sysbench | sudo apt install sysbench | ||
sysbench --help | sysbench --help | ||
- | + | </ | |
- | ## Создание тестовой БД | + | Создание тестовой БД |
+ | < | ||
sudo -iu postgres createdb testdb2 | sudo -iu postgres createdb testdb2 | ||
- | + | </ | |
- | ## Инициализация данных в СУБД через локальное соединение: | + | Инициализация данных в СУБД через локальное соединение: |
+ | < | ||
sysbench oltp_common --db-driver=pgsql --pgsql-host=127.0.0.1 --pgsql-port=5432 --pgsql-user=postgres --pgsql-password=postgres --pgsql-db=testdb2 --tables=10 --table-size=100000 prepare | sysbench oltp_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 | ||
- | + | </ | |
- | ## Проведение теста: | + | Проведение теста: |
- | ## Сценарии oltp_read_write, | + | Сценарии |
- | ## --threads – число параллельных потоков (клиентов). | + | '' |
- | ## --time – общее время теста в секундах. | + | '' |
+ | < | ||
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 | ||
- | + | </ | |
- | ## Очистка: | + | Очистка: |
+ | < | ||
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 | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Пример использования go-tpc. ==== |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Установка https:// | + | |
- | ## Подготовка БД для модели аналитических запросов | + | |
+ | Установка [[https:// | ||
+ | Подготовка БД для модели аналитических запросов | ||
+ | < | ||
go-tpc tpch prepare -d postgres -U postgres -p ' | go-tpc tpch prepare -d postgres -U postgres -p ' | ||
- | + | </ | |
- | ## Запуск эмуляции аналитического запроса | + | Запуск эмуляции аналитического запроса |
+ | < | ||
go-tpc tpch run -d postgres -U postgres -p ' | go-tpc tpch run -d postgres -U postgres -p ' | ||
+ | </ | ||
- | ======================================================================================================== | + | ===== FAQ доп информация, |
- | | + | |
- | ======================================================================================================== | + | ==== Для удобства отображения в psql редактируем содержание файла подсказки .psqlrc (~/.psqlrc) ==== |
- | | + | |
- | ======================================================================================================== | + | |
- | + | ||
- | ## Рекомендуется также настроить подсказку командного интерпретатора СУБД | + | |
- | ## и вывести информацию по серверу, | + | |
- | ## Настраиваем вид подсказки в файле .psqlrc в домашнем каталоге пользователя postgres при подключении к СУБД. | + | |
- | ## переходим под пользователя postgres | + | |
+ | Рекомендуется также настроить подсказку командного интерпретатора СУБД и вывести информацию по серверу, | ||
+ | Настраиваем вид подсказки в файле .psqlrc в домашнем каталоге пользователя postgres при подключении к СУБД. | ||
+ | переходим под пользователя postgres | ||
+ | < | ||
sudo su - postgres | sudo su - postgres | ||
- | + | </ | |
- | ## Редактируем конфигурационный файл | + | Редактируем конфигурационный файл |
+ | < | ||
nano ~/.psqlrc | nano ~/.psqlrc | ||
- | + | </ | |
- | ## Добавляем в файл .psqlrc строку | + | Добавляем в файл .psqlrc строку |
- | ## пример цветной промпт | + | пример цветной промпт |
+ | < | ||
\set PROMPT1 ' | \set PROMPT1 ' | ||
\set PROMPT2 ' | \set PROMPT2 ' | ||
- | + | </ | |
- | ## Сохраняем и вызываем psql для провеки | + | Сохраняем и вызываем psql для проверки |
+ | < | ||
psql | psql | ||
- | + | </ | |
- | ## если мы работаем из под другого пользователя в системе с правами sudo, | + | если мы работаем из под другого пользователя в системе с правами sudo, то можно подключиться к БД по локальному соединению так |
- | ## то можно подключиться к БД по локальному соединению так | + | < |
sudo -iu postgres psql | sudo -iu postgres psql | ||
+ | </ | ||
+ | Пояснение для подсказки ' | ||
+ | \set PROMPT1 ' | ||
- | ## Пояснение для подсказки | + | '' |
- | ## \set PROMPT1 ' | + | '' |
- | + | '' | |
- | %M имя хоста сервера баз данных отображается «[local]», | + | '' |
- | %> прослушиваемый порт | + | '' |
- | %n имя пользователя сеанса | + | '' |
- | %/ текущая база данных | + | '' |
- | %R находитесь ли вы в однострочном режиме (^) или отключены (!), но обычно = | + | |
- | %# являетесь ли вы суперпользователем (#) или обычным пользователем (>) | + | |
- | %x статус транзакции - обычно пусто, если только не в блоке транзакции (*) | + | |
- | + | ||
- | ## Пример вывода командной строки с подсказкой для сервера СУБД с IP 10.2.0.11, | + | |
- | ## работающем на порту 5432, для пользователя postgres и БД test | + | |
+ | Пример вывода командной строки с подсказкой для сервера СУБД с IP 10.2.0.11, работающем на порту 5432, для пользователя postgres и БД test | ||
+ | < | ||
10.2.0.11: | 10.2.0.11: | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Cписок команд psql которые часто используются. ==== |
- | | + | |
- | ======================================================================================================== | + | |
- | \l ## список БД | + | '' |
- | \dt ## список таблиц | + | '' |
- | \du ## список пользователей | + | '' |
- | \db ## список табличных пространств | + | '' |
- | \dn ## список схемы | + | '' |
- | \dx ## список установленных расширений | + | '' |
- | \dx+ pg_stat_statements | + | '' |
- | SELECT * FROM pg_available_extensions; | + | '' |
- | \d table_name | + | '' |
- | \c db_name | + | '' |
- | \password user ## смена пароля УЗ в БД | + | '' |
- | \d+ pg_stat_wal_receiver | + | '' |
- | \x ## задать параметр вывода следующим select таблицы по вертикали в читаемом виде, чтобы отключить также \x | + | '' |
- | select tantor_version(); | + | '' |
- | ## эти переменные также можно указать в .psqlrc | + | эти переменные также можно указать в '' |
- | \pset pager on ## вкл постраничный пейджер, | + | '' |
- | \pset pager off ## выкл постраничный пейджер | + | '' |
- | \pset pager ## статус постраничный пейджер | + | '' |
- | \pset linestyle unicode | + | '' |
- | \pset border 2 | + | '' |
- | export PAGER=' | + | '' |
- | Остальное само изучение или курсы по DBA1, DBA2 | + | ==== Доп утилиты в ОС для работы с postgres, которые начинаются на pg* ==== |
- | + | ||
- | ======================================================================================================== | + | |
- | | + | |
- | https:// | + | |
- | ======================================================================================================== | + | |
+ | [[https:// | ||
+ | < | ||
sudo su - postgres | sudo su - postgres | ||
+ | </ | ||
+ | </ | ||
psql | psql | ||
pg_ctl | pg_ctl | ||
Строка 1286: | Строка 1216: | ||
pg_upgrade | pg_upgrade | ||
pg_isready | pg_isready | ||
+ | </ | ||
+ | '' | ||
+ | Расширение " | ||
- | vacuumlo | + | '' |
- | (вычистки) осиротевших больших объектов из баз данных кластера. Автоматизировать удаление осиротевших больших | + | < |
- | | + | |
- | | + | |
- | + | ||
- | pg_config --sharedir | + | |
ls -la / | ls -la / | ||
+ | </ | ||
- | ======================================================================================================== | + | ---- |
- | Если psql не запускается под пользователем postgres (bash: psql: команда не найдена), | + | Если psql не запускается под пользователем postgres (bash: psql: команда не найдена), |
- | значит в переменной окружения path отсутствует путь до / | + | значит в переменной окружения path отсутствует путь до / |
- | ======================================================================================================== | + | ---- |
- | + | ||
- | ## редактируем переменную окружения | + | |
+ | редактируем переменную окружения | ||
+ | < | ||
nano ~/.bashrc | nano ~/.bashrc | ||
- | + | </ | |
- | ## добавляем и сохраняем | + | добавляем и сохраняем |
+ | < | ||
export PATH=/ | export PATH=/ | ||
- | + | </ | |
- | ## Перезапускаем оболочку | + | Перезапускаем оболочку |
+ | < | ||
exec bash | exec bash | ||
- | + | </ | |
- | ## Проверяем подключение, | + | Проверяем подключение, |
+ | < | ||
psql -p 5432 -h localhost -U postgres | psql -p 5432 -h localhost -U postgres | ||
+ | </ | ||
- | ======================================================================================================== | + | >!!! При необходимости, |
- | | + | Настройки правил подключения к БД. |
- | Настройки правил подключения к БД. | + | Документация по настройке pg_hba.conf: |
- | Документация по настройке pg_hba.conf: | + | [[https:// |
- | https:// | + | < |
- | ======================================================================================================== | + | |
sudo nano / | sudo nano / | ||
+ | </ | ||
- | ======================================================================================================== | ||
- | !!! При необходимости, | ||
- | По умолчанию в параметрах конфигурации в файле postgresql.conf сервера СУБД | ||
- | не настроен вывод системных журналов СУБД в отдельных каталог и нет прямой ссылки на каталог данных. | ||
- | Рекомендуется включить возможность вывода системных журналов отдельный каталог | ||
- | и указать прямую ссылку на каталог данных. | ||
- | ======================================================================================================== | ||
+ | > !!! При необходимости, | ||
+ | > По умолчанию в параметрах конфигурации в файле postgresql.conf сервера СУБД не настроен вывод системных журналов СУБД в отдельных каталог и нет прямой ссылки на каталог данных. | ||
+ | > Рекомендуется включить возможность вывода системных журналов отдельный каталог и указать прямую ссылку на каталог данных. | ||
+ | < | ||
sudo nano / | sudo nano / | ||
- | + | </ | |
- | ## Укажем путь сохранения log файлов | + | Укажем путь сохранения log файлов |
+ | < | ||
logging_collector = on; | logging_collector = on; | ||
log_directory = '/ | log_directory = '/ | ||
- | + | </ | |
- | ## Применение параметров без перезагрузки сервера СУБД с проверкой | + | Применение параметров без перезагрузки сервера СУБД с проверкой |
+ | < | ||
sudo -iu postgres psql | sudo -iu postgres psql | ||
SELECT pg_reload_conf(); | SELECT pg_reload_conf(); | ||
SHOW logging_collector; | SHOW logging_collector; | ||
- | + | </ | |
- | ## посмотреть лог БД, пример: | + | посмотреть лог БД, пример: |
+ | < | ||
less / | less / | ||
+ | </ | ||
- | ## !!! не забудьте скорректировать скрипт Ротация логов. | + | > !!! не забудьте скорректировать скрипт Ротация логов. |
- | ## При проверке системных журналов ОС | ||
+ | При проверке системных журналов ОС | ||
+ | < | ||
sudo journalctl -u tantor-be-server-16.service | sudo journalctl -u tantor-be-server-16.service | ||
+ | </ | ||
+ | Утилита сообщает, | ||
+ | Можно посмотреть в каталоге ''/ | ||
- | ## Утилита сообщает, | + | ==== Сетевые настройки слушателя и порта инстанса СУБД. ==== |
- | ## каталога с данными БД. Далее, в нашем примере, | + | < |
- | ## Можно посмотреть в каталоге / | + | |
- | ## самого нового файла postgresql-< | + | |
- | + | ||
- | ======================================================================================================== | + | |
- | | + | |
- | ======================================================================================================== | + | |
sudo nano / | sudo nano / | ||
- | + | </ | |
- | ## ищем и выставляем параметры | + | ищем и выставляем параметры |
+ | < | ||
listen_addresses = ' | listen_addresses = ' | ||
- | ## или можно указать прямо через запятую несколько IP сетевых интерфейсов на одном хосте. | + | </ |
+ | или можно указать прямо через запятую несколько IP сетевых интерфейсов на одном хосте. | ||
+ | < | ||
listen_addresses = ' | listen_addresses = ' | ||
port = 5433 | port = 5433 | ||
- | + | </ | |
- | ## перезагружаем и проверяем | + | перезагружаем и проверяем |
+ | < | ||
sudo systemctl restart tantor-be-server-16 | sudo systemctl restart tantor-be-server-16 | ||
sudo ss -tulnp | grep postgres | sudo ss -tulnp | grep postgres | ||
- | + | </ | |
- | ## подключаемся к СУБД по новому порту | + | подключаемся к СУБД по новому порту |
+ | < | ||
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 | ||
+ | </ | ||
- | ======================================================================================================== | + | > !!! При необходимости, |
- | | + | > Можно перенести каталог с данными экземпларя СУБД на отдельный другой католог или точку монтирования (диск) в ОС |
- | Можно перенести каталог с данными экземпларя СУБД на отдельный другой католог | + | |
- | | + | |
- | ======================================================================================================== | + | |
- | ## Останавливаем службу СУБД | ||
+ | Останавливаем службу СУБД | ||
+ | < | ||
sudo -i | sudo -i | ||
systemctl stop tantor-be-server-16.service | systemctl stop tantor-be-server-16.service | ||
- | + | </ | |
- | ## Редактируем в postgresql.conf ссылку на новый каталог данных | + | Редактируем в '' |
+ | < | ||
nano / | nano / | ||
- | + | </ | |
- | ## Прямая ссылка на новый каталог данных, | + | Прямая ссылка на новый каталог данных, |
+ | < | ||
data_directory = '/ | data_directory = '/ | ||
- | + | </ | |
- | ## Переносим data каталог через команду mv или копируем через cp -R в новый каталог | + | Переносим data каталог через команду mv или копируем через cp -R в новый каталог |
+ | < | ||
cp -R / | cp -R / | ||
- | + | </ | |
- | ## Назначаем права на новый каталог | + | Назначаем права на новый каталог |
+ | < | ||
sudo chown -R postgres: | sudo chown -R postgres: | ||
- | + | </ | |
- | ## Меняем путь в службе | + | Меняем путь в службе |
+ | < | ||
sudo nano / | sudo nano / | ||
Environment=PGDATA=/ | Environment=PGDATA=/ | ||
- | + | </ | |
- | ## Запускаем экземпляр | + | Запускаем экземпляр |
+ | < | ||
sudo systemctl daemon-reload | sudo systemctl daemon-reload | ||
sudo systemctl start tantor-be-server-16.service | sudo systemctl start tantor-be-server-16.service | ||
+ | </ | ||
- | ======================================================================================================== | + | ---- |
- | Пакеты в ОС можно устанавливать через команды sudo dpkg -i **.deb | + | |
- | Нужно будет также установить все зависимости руками. | + | |
- | При этом инициализация инстанса СУБД не будет производиться автоматически. | + | |
- | Если нужно создать инстанс СУБД или пересоздать чистую конфигурацию в другой каталог, | + | |
- | инициализация СУБД Tantor производится под пользователем postgres следующим образом: | + | |
- | ======================================================================================================== | + | |
- | ## Переходим в УЗ postgres | + | > Пакеты в ОС можно устанавливать через команды |
+ | < | ||
+ | sudo dpkg -i **.deb \\ | ||
+ | < | ||
+ | > | ||
- | sudo su - postgres | + | > При этом инициализация инстанса СУБД не будет производиться автоматически. |
- | ## Инициализация нового экземпляра, | + | > Если |
- | / | + | ---- |
- | ## Правим порт, например 5433, если нужно, смотри комментарий ниже. | + | Переходим в УЗ postgres |
+ | < | ||
+ | sudo su - postgres | ||
+ | </ | ||
+ | |||
+ | Инициализация нового экземпляра, | ||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Правим порт, например 5433, если нужно, смотри комментарий ниже. | ||
+ | < | ||
nano / | nano / | ||
+ | </ | ||
- | ## !!! Если планируется запускать параллельно несколько экземпляров, | + | ---- |
- | ## то порты конфигурации СУБД в postgresql.conf должны быть разные, | + | |
- | ## В продуктивных системах это не рекомендуется, | + | |
- | ## между процессами может делиться неравномерно, | + | |
- | ## Для параллельного запуска экземпляров одной и той же версии сборки СУБД | + | > !!! Если планируется запускать |
- | ## создадим отдельный новый файл службы под root. | + | > В продуктивных |
+ | ---- | ||
+ | |||
+ | Для параллельного запуска экземпляров одной и той же версии сборки СУБД создадим отдельный новый файл службы под root. | ||
+ | < | ||
sudo -i | sudo -i | ||
cp / | cp / | ||
nano / | nano / | ||
- | + | </ | |
- | ## Редактируем новый файл службы, | + | Редактируем новый файл службы, |
+ | < | ||
Environment=PGDATA=/ | Environment=PGDATA=/ | ||
- | + | </ | |
- | ## Запустим новую службу | + | Запустим новую службу |
+ | < | ||
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 | ||
+ | </ | ||
- | ======================================================================================================== | + | ==== Ручной запуск инстанса СУБД без службы. ==== |
- | | + | |
- | ======================================================================================================== | + | |
+ | < | ||
sudo su - postgres | sudo su - postgres | ||
/ | / | ||
- | + | </ | |
- | ## Останавливаем | + | Останавливаем |
+ | < | ||
/ | / | ||
- | + | </ | |
- | ## посмотреть все возможности pg_ctl | + | посмотреть все возможности pg_ctl |
+ | < | ||
/ | / | ||
+ | </ | ||
- | ## !!! Если планируется установка нескольких версий сборок пакетов СУБД | ||
- | ## Например Tantor 15, Tantor 16 версий, | ||
- | ## Службы для разных версий СУБД после установки пакетов будут разные, | ||
- | ======================================================================================================== | + | > !!! Если планируется установка |
- | Обновление | + | > Например |
- | ======================================================================================================== | + | > Службы для разных версий СУБД после |
- | Вариант 1 Возможен только между одинаковыми сборками СУБД. | + | |
- | se15 -> se16 | + | |
- | be15 -> be16 | + | |
- | se1c 15 -> se1c 16 | + | |
- | В противном случае при проверке будут ошибки, | ||
- | обновление СУБД можно выполнить только через восстановление из бекапа pg_dumpall. | ||
- | ======================================================================================================== | ||
- | ## делаем логический бекап | + | ==== Обновление СУБД tantor по мажорной |
- | ## pg_basebackup | + | |
- | pg_dumpall -U postgres > backup.sql | ||
- | ## Установите пакет новой версии PostgreSQL c инициализацией новой БД | + | > **Вариант 1** Возможен только между |
- | ## процесс описан в начале файла. | + | > '' |
- | ## инициализацию можно выполнить | + | > '' |
+ | > '' | ||
- | / | + | > В противном случае при проверке будут ошибки, |
- | ## обновите права на подкаталоги | ||
+ | делаем логический бекап БД, '' | ||
+ | < | ||
+ | pg_dumpall -U postgres > backup.sql | ||
+ | </ | ||
+ | Установите пакет новой версии PostgreSQL c инициализацией новой БД процесс описан в начале файла. | ||
+ | инициализацию можно выполнить руками если вы просто установили пакет. | ||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | обновите права на подкаталоги | ||
+ | < | ||
chown -R postgres: | chown -R postgres: | ||
- | + | </ | |
- | ## останавливаем все СУБД (рекомендуется для больших баз) | + | останавливаем все СУБД (рекомендуется для больших баз) |
+ | < | ||
systemctl stop tantor-* | systemctl stop tantor-* | ||
- | + | </ | |
- | ## Проверьте совместимость кластеров | + | Проверьте совместимость кластеров |
+ | < | ||
su - postgres | su - postgres | ||
+ | </ | ||
+ | < | ||
/ | / | ||
--old-datadir / | --old-datadir / | ||
Строка 1525: | Строка 1464: | ||
--new-bindir / | --new-bindir / | ||
--check | --check | ||
+ | </ | ||
+ | === Вариант 1 Обновление СУБД через утилиту pg_upgrade. === | ||
- | --------------------------------------------------------------------------------- | + | Процесс скопирует данные из старого кластера в новый и настроит его для работы |
- | Вариант 1 Обновление СУБД через утилиту pg_upgrade. | + | < |
- | --------------------------------------------------------------------------------- | + | |
- | + | ||
- | ## Процесс скопирует данные из старого кластера в новый и настроит его для работы | + | |
/ | / | ||
--old-datadir / | --old-datadir / | ||
Строка 1537: | Строка 1474: | ||
--old-bindir / | --old-bindir / | ||
--new-bindir / | --new-bindir / | ||
+ | </ | ||
+ | Если обновление успешно, | ||
+ | '' | ||
- | ## Если обновление успешно, | + | '' |
- | ## Не забудьте проверить postgresql.auto.conf, | + | |
- | ## на новой инсталяции, | + | |
- | Обновление завершено | ||
- | ----------------------------------------------------------- | ||
- | Статистика оптимизатора утилитой pg_upgrade не переносится. | ||
- | Запустив новый сервер, | ||
- | / | ||
- | При запуске этого скрипта будут удалены файлы данных старого кластера: | ||
- | ./ | ||
- | ## Перенесите настройки из старого postgresql.conf | + | > Статистика оптимизатора утилитой pg_upgrade не переносится. |
+ | > Запустив новый сервер, имеет смысл выполнить: | ||
+ | > ''/ | ||
+ | > При запуске этого скрипта будут удалены файлы данных старого кластера: | ||
+ | > '' | ||
- | ## запускаем кластер | ||
- | / | + | Перенесите настройки из старого postgresql.conf |
- | + | ||
- | ## обновляем статистику | + | |
+ | запускаем кластер | ||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | обновляем статистику | ||
+ | < | ||
/ | / | ||
- | + | </ | |
- | ## подключаемся к бд и проверяем | + | подключаемся к бд и проверяем |
+ | < | ||
psql | psql | ||
select tantor_version(); | select tantor_version(); | ||
Строка 1566: | Строка 1505: | ||
\l | \l | ||
\q | \q | ||
- | + | </ | |
- | ## удаляем старый кластер | + | удаляем старый кластер |
+ | < | ||
./ | ./ | ||
- | ## или вручную | + | </ |
+ | или вручную | ||
+ | < | ||
rm -rf / | rm -rf / | ||
- | + | </ | |
- | ## удаляем старые пакеты | + | удаляем старые пакеты |
+ | < | ||
apt remove tantor-< | apt remove tantor-< | ||
+ | </ | ||
+ | === Вариант 2: pg_dump + pg_restore (если pg_upgrade недоступен из-за ошибо совместимости) === | ||
- | -------------------------------------------------------------------------------------- | + | Перенесите настройки из '' |
- | Вариант 2: pg_dump + pg_restore (если pg_upgrade недоступен из-за ошибо совместимости) | + | пример: |
- | -------------------------------------------------------------------------------------- | + | < |
- | + | ||
- | ## Перенесите настройки из старого postgresql.conf и pg_hba.conf в новый кластер | + | |
- | ## пример: | + | |
cd / | cd / | ||
cp postgresql.conf postgresql.auto.conf pg_hba.conf / | cp postgresql.conf postgresql.auto.conf pg_hba.conf / | ||
- | + | </ | |
- | ## Запустите кластер новую версию СУБД | + | Запустите кластер новую версию СУБД |
+ | < | ||
/ | / | ||
+ | </ | ||
+ | Восстановите данные: | ||
- | ## Восстановите данные: | + | > Если в бэкапе есть ошибки (например, |
- | ## Если в бэкапе есть ошибки (например, | + | < |
- | ## добавьте флаг --no-sync для игнорирования мелких проблем. | + | |
psql -U postgres -f backup.sql | psql -U postgres -f backup.sql | ||
- | + | </ | |
- | ## проверяем что все базы на месте, подключаемся к бд и проверяем | + | проверяем что все базы на месте, подключаемся к бд и проверяем |
+ | < | ||
psql | psql | ||
select tantor_version(); | select tantor_version(); | ||
Строка 1604: | Строка 1543: | ||
\l | \l | ||
\q | \q | ||
- | + | </ | |
- | ## Если обновление успешно, | + | Если обновление успешно, |
+ | < | ||
apt remove tantor-< | apt remove tantor-< | ||
rm -rf / | rm -rf / | ||
- | + | </ | |
- | ======================================================================================================== | + | ==== Если нужно перенастроить переменные платформы / |
- | | + | например: |
- | например: | + | переходим в каталог |
- | ======================================================================================================== | + | < |
- | + | ||
- | ## переходим в каталог | + | |
cd / | cd / | ||
- | + | </ | |
- | ## останавливаем докеры | + | останавливаем докеры |
+ | < | ||
sudo docker-compose --env-file=platform.env down | sudo docker-compose --env-file=platform.env down | ||
- | + | </ | |
- | ## правим файл c переменными и сохраняем | + | правим файл c переменными и сохраняем |
+ | < | ||
nano platform.env | nano platform.env | ||
EMAIL_PORT= | EMAIL_PORT= | ||
Строка 1630: | Строка 1566: | ||
EMAIL_HOST= | EMAIL_HOST= | ||
EMAIL_PASSWORD= | EMAIL_PASSWORD= | ||
- | + | </ | |
- | ## поднимаем контейнеры с новыми параметрами | + | поднимаем контейнеры с новыми параметрами |
+ | < | ||
docker-compose --env-file platform.env up -d | docker-compose --env-file platform.env up -d | ||
+ | </ | ||
+ | проверяем платформу через браузер. | ||
- | ## проверяем платформу через браузер. | ||
- | |||
- | ======================================================================== | ||
- | ----------------- удаление платформы ----------------- | ||
- | ======================================================================== | ||
+ | ===== удаление платформы ===== | ||
+ | < | ||
sudo docker stop $(docker ps -aq) | sudo docker stop $(docker ps -aq) | ||
sudo docker rm $(docker ps -aq) | sudo docker rm $(docker ps -aq) | ||
Строка 1647: | Строка 1582: | ||
sudo docker rmi $(docker images -q) | sudo docker rmi $(docker images -q) | ||
sudo rm -rf /opt/tantor | sudo rm -rf /opt/tantor | ||
+ | </ | ||
- | ======================================================================== | + | ==== удаление СУБД и агента ==== |
- | ----------------- | + | < |
- | ======================================================================== | + | |
sudo apt purge tantor-be-server-16 | sudo apt purge tantor-be-server-16 | ||
sudo rm -rf / | sudo rm -rf / | ||
sudo rm -rf / | sudo rm -rf / | ||
+ | </ | ||
+ | < | ||
sudo apt purge pmaagent | sudo apt purge pmaagent | ||
sudo rm -rf / | sudo rm -rf / | ||
- | + | </ | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |
vji/tantor1/start.1753963956.txt.gz · Последнее изменение: 2025/07/31 12:12 — vji