Обслуживание Системы

Базовые действия

Создание дампа базы данных

$ pg_dump -Oc --if-exists имя_базы_данных > имя_файла_дампа

В случае переноса дампа базы данных из PostgreSQL версии 10 в версию 9.x необходимо выполнить:

$ sed -i "/^    AS integer$/d" имя_файла_дампа

Создание архива медиа-файлов

В рабочем каталоге приложения netdb_demo (_project/netdb_demo/) выполнить команду:

$ tar -zcvf путь_к_файлу_архива _media/

Загрузка данных из дампа в базу на развернутом из дистрибутива стенде

Операция выполняется одинаково для всех дистрибутивов.

Необходимо в рабочем каталоге приложения netdb_demo, под активированным окружением выполнить команду:

$ netdb_load_dump путь_к_файлу_дампа

Загрузка пользовательских медиа-файлов (каталог _media)

$ tar zxvf путь_к_файлу_архива_медиафайлов -C путь_к_рабочему_каталогу_приложения_netdb_demo

Изменение адреса техподдержки

В файл _project/netdb_demo/netdb_demo/settings/common.py добавить строку:

SUPPORT_EMAIL = 'email_техподдержки'

и выполнить:

$ netdb_restart

Просмотр логов

Если при запуске процессов приложений или в какой-то другой ситуации возникают ошибки, есть возможность просмотреть логи приложений, которые располагаются:

  • Для приложения netdb_demo в подкаталоге _project/netdb_demo/_log/.

Пример таких логов для установленного приложения:

/home/netdbuser/apps/netdbapp/_project/netdb_demo/_log/uwsgi.log
/home/netdbuser/apps/netdbapp/_project/netdb_demo/_log/supervisord.uwsgi.log
/home/netdbuser/apps/netdbapp/_project/netdb_demo/_log/debug.log
/home/netdbuser/apps/netdbapp/_project/netdb_demo/_log/errors.log
/home/netdbuser/apps/netdbapp/_project/netdb_demo/_log/auth.log
  • Для приложения netdb_proj в подкаталоге /netdb_proj/_log/.

Пример таких логов для установленного приложения:

/home/netdbuser/apps/netdbapp_memdb/_project/netdb_proj/_log/uwsgi-memdb-uwsgi.memdb.default.log
/home/netdbuser/apps/netdbapp_memdb/_project/netdb_proj/_log/supervisord.memdb.default.uwsgi.log

Также необходимо просматривать логи http-сервера, используемого в качестве фронтенда (Apache или nginx), для поиска возможных ошибок, а также логи PostgreSQL.

Массовая загрузка пользователей

Если при установке Системы необходимо загрузить в Систему учетные записи пользователей с набором свойств (ФИО, телефон, e-mail, должность и т.п.) и заранее заданными паролями, администратор Системы должен выполнить следующие действия:

  1. Сформировать файл users.csv, содержащий список имен пользователей с заданными паролями в формате csv. В каждой строке файла должны содержаться 2 поля: имя пользователя (логин) и пароль пользователя, с разделителем «;» (точка с запятой).

Пример файла users.csv:

AntonovVB@vaz.ru;qdF9cvZk9C4A
SvetlovIA@kamaz.ru;wRT8HpjAX7NP
MakarovGA@vaz.ru;uwdm5KqLx127
  1. Выполнить команду:

cat users.csv | awk -F ';' '{if ($1 != "" && $2 != "") printf "echo \047-- Обрабатывается %s\047 ; netdb_command add_user --no-ask --no-strict %s %s \n",$1,$1,$2}' | bash &> ./add_users.log

Вывод информации о работе команды направляется в лог-файл add_users.log.

  1. Создать в Системе реестр «Реестр пользователей» на основе справочника «Пользователи».

Реестр пользователей должен включать системные показатели:

  • «Название»

  • «Организация»

  • «Фамилия»

  • «Имя»

  • «Отчество»

  • «Почта»

  • «Телефон»

  • «Роль»

  • «Администратор?»

  • «Активен?»

  • «Домен»

На рисунке показана структура реестра.

_images/325.png

После создания реестра его необходимо сохранить и перейти в режим просмотра.

  1. Сформировать файл формата xlsx, содержащий данные пользователей для импорта в «Реестр пользователей».

Пример xlsx-файла с данными пользователей.

_images/326.png

Необходимо проверить корректность данных, подготовленных для загрузки:

  • В ячейках, содержащих список ролей (в столбце H) не должно быть символов «перевод строки» и других непечатаемых символов. Наименования ролей должны быть полностью идентичны наименованиям ролей в системном справочнике «Роли».

  • Наименования доменов (в столбце K) должны быть полностью идентичны наименованиям доменов в иерархическом системном справочнике «Иерархическая система доступа».

  • Наименования организаций (в столбце B) должны быть полностью идентичны наименованиям организаций в иерархическом справочнике «Организации».

  1. Импортировать данные из xlsx-файла в «Реестр пользователей».

  • Нажать на кнопку «Импортировать данные из xlsx».

_images/327.png
  • В стандартном диалоговом окне выбрать созданный файл и нажать на кнопку «Ок» во всплывающем окне.

_images/328.png
  • При импорте данных в реестр Система проверяет корректность импортируемых данных. В случае получения сообщений об ошибках необходимо поправить данные и повторно выполнить импорт в реестр.

_images/329.png

Системные команды

В составе дистрибутива Триафлай поставляется набор скриптов, обеспечивающих выполнение системных management-команд для действий из командной строки.

Для получения полного списка команд необходимо выполнить команду help:

$ netdb_command help

Команды поддержки

reset_admin

Для смены пароля пользователя-администратора используется команда reset-admin:

$ netdb_command help reset_admin
Usage: netdb_command reset_admin [options]

Сбросить пароль админа (по умолчанию на "admin").

Options:
  --password=PASSWORD   Новый пароль админа
  --version             show program's version number and exit
  -h, --help            show this help message and exit

revert_to

В Системе существует возможность вернуть базу данных стенда на состояние в заданный момент времени. Для этого используется команда revert_to:

$ netdb_command help revert_to
Usage: netdb_command revert_to дата

Возвращает всю базу на состояние в заданный момент времени

формат даты один из: %Y-%m-%d %H:%M:%S, %Y, %d.%m.%Y, %Y-%m-%d,
       %d.%m.%Y %H:%M:%S, %m.%Y, %Y-%m-%d %H:%M, %d.%m.%Y %H:%M

adapters_sync

Команда adapters_sync выполняет синхронизацию выбранного задания или источника:

netdb_command help adapters_sync
Usage: netdb_command adapters_sync [options]

 Выполнить синхронизацию заданного задания или источника.


  Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings=SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath=PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on exception
  --sync-task=SYNC_TASK
                        Выполнить задание по
                        синхронизации по его id
  --adapter-id=ADAPTER_ID
                        Загрузить данные по id
                        коннектора, задания
                        игнорируются
  --version             show program's version number and exit

Команды проверки целостности базы

netdbcheck

Основная команда для проверки целостности структуры данных Триафлай. Выдает сообщения о выявленных нарушениях в структуре, которые могут быть устранены соответствующими «fix…»-командами:

$ netdb_command help netdbcheck
Usage: netdb_command netdbcheck [options]

NetDb integrity check

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Данную команду можно выполнять периодически для своевременного выявления нарушений в структуре данных и их устранения.

documentscheck

Запись в базе данных содержит интервал времени ее действия. Команда documentscheck проверяет непротиворечивость этих данных:

$ netdb_command help documentscheck
Usage: netdb_command documentscheck [options]

Document subclasses integrity check

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Команды исправления БД в случае найденных ошибок

fixdocuments_overlapping

Если команда documentscheck сообщает о наличии перекрывающихся интервалов действия записей, то эта команда решает проблему:

$ netdb_command help fixdocuments_overlapping
Usage: netdb_command fixdocuments_overlapping [options]

Fix overlapping interval errors for Document subclasses

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

fixnetdb_element_uniqueness

Устраняет неуникальные ссылки element в базе данных Триафлай (сообщение от netdbcheck):

$ netdb_command help fixnetdb_element_uniqueness
Usage: netdb_command fixnetdb_element_uniqueness [options]

NetDb fix element uniqueness

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

fixnetdb_extra_element

Удаляет лишние ссылки element в базе данных Триафлай (сообщение от netdbcheck):

$ netdb_command help fixnetdb_extra_element
Usage: netdb_command fixnetdb_extra_element [options]

Fix extra elements (trancate document_start)

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

fixnetdb

Команда fixnetdb последовательно выполняет все коррекции из «fix…»-команд:

$ netdb_command help fixnetdb
Usage: netdb_command fixnetdb [options]

NetDb fix all of documents and netdb

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Следует применять только в случае нахождения ошибок при выполнении netdbcheck и некорректном функционировании системы.

Удаление данных

clean_relations

Отвязка данных от справочника (объекты остаются в системе):

$ netdb_command help clean_relations
Usage: manage.py clean_relations [options] id id ...>

Clean relations. Discard all elements

drop_relations

Удаление справочников (с содержимым):

$ netdb_command help drop_relations
Usage: manage.py drop_relations [options] id id ...>

Drop relations with all elements

drop_descriptor_values

Удаление всех значений показателей (не удаляет объекты - только значения показателей):

$ netdb_command help drop_descriptor_values
Usage: manage.py drop_descriptor_values [options] id id ...>

Drop all links with descriptors given. EXPERIMENT !!!

drop_retrospection_data

Команда drop_retrospection_data безвозвратно удаляет исторические данные, оставляя только актуальные на данный момент (см. подраздел «Режим ретроспекции»):

$ netdb_command help drop_retrospection_data
Usage: netdb_command drop_retrospection_data [options]

Remove version history from all document subclasses

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
     Verbosity level; 0=minimal output, 1=normal output, 2=verbose
     output, 3=very verbose output

Внутренние команды

migrate

Команда выполняет необходимые миграции БД при обновлении системы. Выполняется автоматически при разворачивании дампа командой load_dump.

sync_uuids

Команда дополняеняет список uuid при обновлении системы или восстановлении дампа. Выполняется автоматически при разворачивании дампа командой load_dump.

sync_predefined

Команда синхронизирует список системных объектов при обновлении системы или восстановлении дампа БД. Выполняется автоматически при разворачивании дампа командой load_dump.