PostgreSQL — Установка Python

  • Установите Python версии 3.6 или выше.
  • Включите опцию install pip.
  • Выполните следующую команду для установки пакетов на обе стороны кластера: pip install flake8 psycopg2 urllib3 coloredlogs pywin32 servicemanager
  • config.ini, расположенный в каталоге: kaskad_path/data/NGA/PostgreSQL/sql/Cluster Monitor Tool, предназначен для настройки инструмента мониторинга кластера, означающего исполняемый файл инструмента: main.py.
  • Замените содержимое config.ini на соответствующее содержимое шаблона для вашей системы:
    • копированием содержимого соответствующего шаблона и заменой содержимого файла config.ini.
    • или
    • переименовав соответствующий файл «Windows: config.windows.template.ini», или Linux: «config.linux.template.ini» в config.ini.
  • Отредактируйте следующие параметры файла template.ini: p1 и p2 (хост, порт и имя dbname).
ПРИМЕЧАНИЕ

Используйте IP-адреса вместо имен хостов в файле config.ini. Измените порт на установленный номер порта. По умолчанию порт PostgreSQL равен 5432.
[cluster] p1 = host=localhost port=5432 dbname=kaskad user=postgres password=postgres
sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any
p2 = host=hostName port=5432 dbname=kaskad user=postgres password=postgres
sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any
[main] local_node_host_name = p1.
ПРИМЕЧАНИЕ

Этот вариант отличается на двух сторонах кластера: p1 на одной и p2 на другой!
pg_data_path = C:/Program Files/PostgreSQL/13/data.
ПРИМЕЧАНИЕ

Если вы установили программу по умолчанию, то путь менять не нужно. Если установка по умолчанию не была произведена, измените путь соответствующим образом.

cmd_create_db_directories= Use the directories you created when creating the
schema:  "db", "ebvents", "alerts",
"backup". Replace by the root directory of your schema:
"C:\\postgresql_backend"
cmd_create_db_directories = (if not exist "C:\\Share\\postgresql_backend"
mkdir "C:\\postgresql_backend") && (if not exist
"C:\\postgresql_backend\\db" mkdir
"C:\\postgresql_backend\\db") && (if not exist
"C:\\postgresql_backend\\alerts" mkdir
"C:\\postgresql_backend\\alerts") && (if not exist
"C:\\postgresql_backend\\events" mkdir
"C:\\postgresql_backend\\events") && (if not exist
"C:\\postgresql_backend\\backups" mkdir
"C:\\postgresql_backend\\backups")
cmd_remove_db_directories = (del /q "C:\Program Files\PostgreSQL\13\data\*")
&& (for /d %%x in ("C:\\Program Files\\PostgreSQL\\13\\data\\*") do
@rd /s /q "%%x") && (if exist "C:\\Share\\postgresql_backend" rmdir
/s /q "C:\\Share\\postgresql_backend")

Замените реальное имя сетевого интерфейса «Ethernet». Для отображения интерфейсов выполните команду:

netsh interface ipv4 show interfaces
cmd_get_network_status_string = netsh interface ipv4 show interfaces "Ethernet" | findstr /e /c:": connected"
cmd_success_network_status_string = connected -> If necessary according to your PostgreSQL language installation
cmd_get_db_status_string = pg_ctl status -D "C:/Program Files/PostgreSQL/13/data"
cmd_promote_standby_to_master = pg_ctl promote -D "C:/Program Files/PostgreSQL/13/data"
ПРИМЕЧАНИЕ

Если вы установили программу по умолчанию, то менять путь не нужно. В противном случае соответствующим образом измените пути следующих опций.
  • path_to_backup: Отредактируйте путь так, чтобы он указывал на каталог резервного копирования схемы.
  • Запустите скрипт main.py
ПРИМЕЧАНИЕ

При необходимости запустите его от имени администратора. Также можно запустить Python-сценарий в качестве службы.

Для этого перейдите в каталог kaskad_path/data/NGA/PostgreSQL/sql/Cluster Monitor Tool и выполните команду

py windows_service.py --startup=auto install

в качестве администратора.

  • Приведенная выше команда создала службу «PgClusterMonitor». Проверьте состояние службы «PgClusterMonitor» в Диспетчере задач/Службы Windows и при необходимости запустите ее.
  • Можно также установить и запустить службу как службу Linux. Для этого выполните следующие действия:
  • Создайте файл для службы
sudo touch /lib/systemd/system/pg-cluster-monitor.service
  • Отредактируйте службу pg-cluster-monitor.service следующим образом:
[Unit Description=PostgreSQL Cluster Monitor Service After=multi-user.target]
[Service]
WorkingDirectory=/pg_cluster_monitor
User=root
Type=idle
ExecStart=/usr/bin/python3 /pg_cluster_monitor/main.py
Restart=always
[Install]
WantedBy=multi-user.target
where /pg_cluster_monitor is directory with source code.
  • Затем выполните следующие команды:
sudo systemctl daemon-reload sudo systemctl enable
pg-cluster-monitor.service sudo systemctl start
pg-cluster-monitor.service
  • Проверьте состояние сервиса с помощью команды:
systemctl status pg-cluster-monitor.service

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *