ЧАВО

Материал из ЭЛЕСТА
Перейти к: навигация, поиск

Принятые обозначения
ОС - Операционная система
БД - база данных


Установка PostgreSQL в ОС Linux

Установка БД

  При установке ОС Linux Astra SE необходимо указать, что на сервере будет находиться СУБД.
  Данный пункт указывается при выборе программного обеспечения.
AstraSE(Postgresql).png
Если при установке ОС данный пункт был пропущен, то БД Postgresql можно установить по инструкции:
 Установка сервера для Linux
 Установка сервера для Windows

Если ОС Astra SE уже установлена, тогда для установки PostgreSQL можно воспользоваться менеджером пакетов Synaptic или в терминале набрать команду sudo apt install postgresql

Не запускается PostqreSQL

При установке PostgreSQL на ОС Linux: Debian, Ubuntu, Эльбрус, CentOS и ряде других, при запуске сервиса PostgreSQL ОС может сообщить об отсутствии служебной БД(кластера), по указанному пути. Это означает, что кластер БД не инициализинован. Для инициализации кластера необходимо выполнить следующие команды:
1. Проверить остановлен ли сервис PostgreSQL:
sudo /etc/init.d/postgresql status или
sudo service postgresql status или
sudo systemctl postgresql status

  Вы должны получить ответ системы, о том, что сервис не активен.

2. Инициализация кластера PostgreSQL должна производиться от имени пользователя, который в последствии будет считаться администратором БД. По умолчанию это пользователь - postgres

  Поэтому выполняем команду от имени этого пользователя:
  sudo -u postgres /usr/lib/postgresql/<версия PostgreSQL>/bin/initdb -D /var/lib/postgresql/<версия PostgreSQL>/main или
sudo -u postgres /usr/lib/postgresql/<версия PostgreSQL>/bin/initdb -D /var/lib/postgresql/<версия PostgreSQL>/data
Путь к БД, требуемый по умолчанию можно увидеть в сообщении об ошибке при старте сервиса PostgresSQL. Если есть необходимость в нестандартном месте расположения БД, то него необходимо указать при инициализации кластера.

3. Если используется нестандартное расположение БД, тогда после создания кластера и до запуска сервиса PosqtgreSQL необходимо внести изменения в файл postgresql.conf

data_directory = '<полный путь к БД из строки инициализации>'
hba_file = '<полный путь к файлам конфигурации>/pg_hba.conf'
ident_file = '<полный путь к файлам конфигурации>/pg_ident.conf'
external_pid_file = '/var/run/postgresql/pg-main.pid'

  Файлы конфигурации могут располагаться либо в каталоге /etc/postgresql/<версия postgresql>/main, либо 
  в каталоге, куда сгенерирована БД кластера, например, /var/lib/postgresql/<версия postgresql>/main, либо /var/lib/postgresql/<версия postgresql>/data, либо указанный путь.

4. После внесенных изменений необходимо запустить сервис:
sudo /etc/init.d/postgresql start или
sudo service postgresql start или
sudo systemctl postgresql start

  Проверяем работу postgresql : 

psql -U postgres -h localhost

  Если будет запрос пароля, тогда необходимо ввести пароль от пользователя postgres(по умолчанию - postgres)
  в командной строке сервиса управления БД набрать: \l. При этом получим список баз данных.
  Для выхода нужно набрать: \q.

5. Для проверки автостарта сервиса postgresql необходимо перезагрузить компьютер.

  Проверяем, узнав статус по командам, указанным п п.1.
  Если сервис не активен, тогда надо выполнить команду, позволяющую запускать postgresql при старте ОС
  В Debian и ОС, созданных на его основе: systemctl enable postgresql
  В CentOS и, созданных на основе RedHat: chkconfig postgresql on

Конфигурация БД

  После установки ОС необходимо проверить настройки базы данных. 
  Для этого в каталоге /etc/postgresql/9.6/main/ надо открыть на редактирование файл pg_hba.conf
  В данном файле должны быть следующие строки:
  local       all        postgres                peer
  local       all        all                     peer
  host        all        all      127.0.0.1/32   md5
  "9.6" в пути каталога указывает на версию Postgresql.
  Вызвать файл на редактирование можно командой: sudo nano /etc/postgresql/9.6/main/pg_hba.conf
  Далее необходимо проверить настройки файла postgresql.conf. Его можно открыть командой: 
  sudo nano /etc/postgresql/9.6/main/postgresql.conf
  в этом файле необходимо изменить следующие записи, если они закоментированы, то следует раскоментировать
  listen_adresses = '*'
  max_connections = 1200
  shared_buffers = 2048MB
  После внесённых изменений, Необходимо перезагрузить Postgresql - sudo /etc/init.d/postrgesql restart

Резервное копирование БД

  В ПО КРОС уже встроен механизм резервного копирования. Однако иногда возникает необходимость переноса базы данных на ОС отличную от Linux Astra SE.
  В связи с тем, что данная ОС выставляет мандатные метки, восстановление базы данных на компьютерах с ОС их не поддерживающих, затруднительно.
  В этом случае необходимо воспользоваться утилитами postgresql из терминала.
  1. Необходимо выйти из АРМ и остановить smpo-server : sudo /etc/init.d/smpo-server stop
  2. Проверяем: завершились ли процессы: ps -aux | grep java
  3. Если процессы не завершились, делаем принудительное завершение: sudo kill -9 <номер процесса>
  4. Далее делаем копию базы с отключением мандатных меток: sudo pg_dump -h localhost -U postgres -Fp --disable-macs --no-security-labels jupiter > /home/elesta/jupiter.sql.
     Вводим пароль пользователя postgres, если система запросит.
  5. Копируем файл jupiter.sql из каталога /home/elesta на внешний носитель и переносим на новый компьютер
  6. Восстановление базы возможно из утилиты pgAdmin или в командной строке: sudo psql -h localhost -U postgres -d jupiter </home/elesta/jupiter.sql. 
     При восстановлении из командной строки БД jupiter должна быть создана.

КРОС

После установки КРОС

  Необходимо проверить некоторые параметры.
  Все файлы конфигурации расположены в /usr/local/smpo-server/conf/
  Файл wrapper.conf должен содержать только следующие записи:
     # Java Additional Parameters
     wrapper.java.additional.1 = -Xms1024m
     wrapper.java.additional.2 = -Xmx4096m
     wrapper.java.additional.3 = -Xss1024k
     wrapper.java.additional.4 = -Djava.awt.headless=true

Большое количество приборов

  Если в охранной деятельности используется порядка 300-500 приборов,
  тогда необходимо внести изменения в файл smpo.properties.
  Рекомендуется изменить параметр db.dataring.max на 100.
  Если приборов 500-1000, параметр db.dataring.max=200.
  Если приборов больше 1000, тогда поставить значение 300.

АРМ-Юпитер