Узнайте, почему возникают ошибки Базы данных в TRASSIR, на что они влияют и как их решить.

На что влияет ошибка Базы Данных и почему появляется?

В базе данных TRASSIR хранит события и связанную с ними информацию. События - это всё что происходит в TRASSIR помимо записи видео. Вход пользователя на сервер, появление движения на канале, распознание номера AutoTrassir, чек или инцидент POS, распознание лица - это события. Примеры информации, связанной с событиями - внутренний список номеров AutoTrassir или база лиц.

При ошибке базы данных TRASSIR не может записать новые события и узнать что-нибудь про старые. Вы не сможете посмотреть инциденты за прошлый день в экспертном режиме POS или проверить, какие номера машин въехали на территорию на прошлой неделе. Хотя новые события могут появляться в интерфейсе TRASSIR, они не попадут в базу данных и будут утеряны.

База данных запускается и работает отдельной службой независимо от работы TRASSIR. В Настройки сервера → База Данных на регистраторе вводятся настройки подключения TRASSIR к базе данных. Поэтому есть три основных причины возникновения ошибки базы данных:

    • Неверные настройки подключения.
    • Не работает служба базы данных. 
    • База данных сломана.

В качестве базы данных TRASSIR использует СУБД PostgeSQL.


Особенности Базы Данных на разных платформах

  • TRASSIR OS

    • По умолчанию база данных хранится на одном из жёстких дисков с архивом. После установки диска TRASSIR OS самостоятельно создаст базу данных, настроит и запустит службу PostgreSQL.
      Ошибка базы данных на регистраторе "из коробки" до установки жёстких дисков - это нормально. Установите жёсткий диск и она пропадёт.



      Пароль вводить не требуется.



  • Windows



Известные ошибки и пути их решения

  • fe_sendauth: no password supplied



    • Причина: Указан пустой Пароль.


  • PgConnection disconnected



    • Причина: Неверно указан Адрес или Порт.


  • Иероглифы-postgres или другие понятные буквы-Иероглифы



    • Причина: Неверно указан Пользователь, Пароль или Имя базы данных.
  • Не удалось подключиться к серверу. В соединении отказано. Он действительно работает по адресу...



    • Причина: Служба PostgreSQL не отвечает
      • Решения для TRASSIR OS
        • Это нормальная ситуация для регистраторов без установленных жёстких дисков. После установки жёстких дисков база данных будет создана на одном из дисков автоматически.
        • Если база данных хранится на дисках с архивом, проверьте наличие дисков через "Настройки сервера" → "Архив".
        • Если база данных хранится на дисках с архивом, настройте подключение к базе данных по умолчанию.
        • Если используется внешняя база данных, проверьте что служба базы данных на удалённой машине запущена, верно указаны адрес и порт.
      • Решение для Windows
  • relation ... already exists



    • Причина: После обновления, замены лицензии или при некоторых сбоях TRASSIR не с первого раза внёс данные в базу.

      • Нужно проверить, носит ли ошибка только информационный характер. TRASSIR мог успешно внести данные со второго раза и сейчас работает нормально.  Переподключитесь к базе данных, чтобы обновить информацию об ошибках:
        1. Запомните или запишите текущий Порт.
        2. Смените Порт на любой другой. Например, с 5432 на 5433.
        3. Подождите 10 секунд, пока ошибка не сменится на ошибку о подключении.
        4. Смените Порт обратно на изначальный.
        5. Подождите 10 секунд, пока ошибка не сменится на статус "Соединение установлено".
      • Если вместо статуса "Соединение установлено" снова появляется ошибка "relation ... already exists", нужно создать новую базу данных.
  • Unknown error

  • Failed to start connection, unable to obtain connection socket

  • cannot drop table pos_events/pos_incidents...



    • Причина: Сломана база данных

      • Если вы готовы предоставить удалённый доступ к регистратору, техническая поддержка может попробовать починить текущую базу данных. Данные из повреждённых частей базы не удастся сохранить. Например, при ошибке на скриншоте события POS будут удалены, но события о распознанных лицах могут остаться.  
      • В остальных случаях требуется создать новую базу данных 
  • Случайно поменяли настройки подключения к базе данных, как можно вернуть обратно?

    • Если регистратор на TRASSIR OS хранит базу данных на архивных дисках - настройте подключение к базе данных по умолчанию
    • В остальных случаях можно восстановить настройки из ранее созданного бэкапа

      Так как настройки восстанавливаются все без исключения, вы можете потерять, например, подключения к камерам, созданные после бэкапа. Поэтому перед восстановлением бэкапа рекомендуется вручную сохранить текущие настройки: в Настройки сервера нажмите Сохранить бэкап конфигурации → В файл...

      • Из файла: В Настройки сервера нажмите Восстановить бэкап конфигурации → Из файла...

      • Из облака: Если сервер был добавлен в облако, то бэкап его настроек может автоматически сохраняться в облаке. Для восстановления из облачного бэкапа в Настройки сервера нажмите кнопку Восстановить бэкап конфигурации → Облако и выберите наиболее подходящий вам по дате бэкап. 

    • Если был утерян пароль для базы данных, работающей на Windows, можно временно настроить вход без пароля.
      С помощью инструкции из нашего руководства найдите файл настройки pg_hba.conf и сделайте его резервную копию. В файле замените md5 на trust. Сохраните файл, найдите службу PostgreSQL в списке служб, нажмите на неё правой кнопкой и выберите Перезапустить. После перезапуска к базе данных можно будет подключиться без пароля. Этот способ рекомендуется только для сохранения данных из базы с последующей переустановкой PostgreSQL.

      При повреждении файла pg_hba.conf служба PostgreSQL не запустится. Если после редактирования файла у вас не запускается служба - восстановите файл из резервной копии и попробуйте ещё раз.


Пересоздание базы данных

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

TRASSIR OS: Воспользуйтесь скриптами из статьи Backup PSSQL.

Windows: Воспользуйтесь инструкцией по переносу базы данных из нашего руководства пользователя.


Большинство способов необратимо удаляет текущую базу данных вместе со всеми записанными в ней событиями.

  • TRASSIR OS

    • Если регистратор хранит базу данных на архивных дисках, нужно только удалить старую базу данных. TRASSIR самостоятельно создаст новую базу данных. Для удаления воспользуйтесь одним из способов:

      • Используйте скрипт удаления базы данных на диске регистратора Remove BD on TRASSIR OS

      • Удалите базу данных вручную

        1. На регистраторе откройте Настройки сервера → База Данных.
        2. Смените Порт с 5432 на 5431. 
        3. На регистраторе перейдите в Настройки сервера → Архив.
        4. Уберите галочку Включить с диска, название которого начинается со звёздочки. Звёздочка означает, что диск используется для хранения базы данных.
        5. На регистраторе перейдите в Настройки сервера → Скриншоты.

        6. В выпадающем списке в верхней части экрана выберите имя вашего диска.
        7. Выберите папку TrassirDB, нажмите на неё правой кнопкой мыши и выберите Удалить.


          Убедитесь, что вы выбрали нужную папку и только её. В соседних папках находится архив.


        8. Подтвердите удаление в появившемся диалоговом окне.
        9. Убедитесь, что папка удалена. Можно перейти в любой соседний пункт меню, например Веб-сервер, затем вернуться обратно в Скриншоты и заново выбрать ваш диск. Эти действия гарантировано обновят информацию о папках в окне.
        10. На регистраторе перейдите в Настройки сервера → Архив.
        11. Поставьте галочку Включить для вашего диска.
        12. На регистраторе перейдите в Настройки сервера → База Данных.
        13. Смените Порт с 5431 на 5432.
        14. Подождите около 10 секунд. Ошибка сменится на статус "Соединение установлено".


      • Если в регистратор установлены два и более дисков - можно создать новую базу данных на другом диске:

        Сломанная база данных не пропадёт с предыдущего диска. Если в будущем ПО TRASSIR начнёт использовать этот диск для хранения базы данных, ошибка снова появится.


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

      1. Запустите программу pgAdmin. Найдите её в Главном меню Windows или нажмите Win+S, введите "PgAdmin" и нажмите Enter.
      2. Дважды щелкните в списке серверов по серверу на (localhost:5432)
      3. В появившемся окне введите пароль пользователя postgres. Это автоматически созданный пользователь базы данных с максимальными правами.
      4. Нажмите правой кнопкой на пункт меню "Базы данных" и выберите Новая база данных...
      5. В появившемся окне введите только Имя новой базы данных и нажмите ОК. Никакие другие настройки вводить не надо.
      6. На сервере TRASSIR зайдите в Настройки сервера → База Данных и введите новое Имя базы даннных.

    • Переустановка службы PostgreSQL:
      1. Удалите текущую установку стандартными средствами Windows. Например, нажмите Win+S, начните вводить "Программ" и выберите в результатах поиска "Программы и компоненты" или "Установка и удаление программ". В открывшемся окне выберите в списке программ PostgreSQL и нажмите кнопку Удалить.
      2. Удалите оставшиеся файлы PostgreSQL с дисков. По умолчанию нужно удалить папки "C:\Program Files\PostgreSQL" и "C:\Program Files (x86)\PostgreSQL" со всем содержимым.
      3. Скачайте установщик PostgreSQL из подраздела "Вспомогательные утилиты" на странице с последними версиями ПО нашего сайта.
      4. Установите PostgreSQL по инструкции из нашего руководства пользователя. По необходимости проведите настройку ОС Windows.
      5. Создайте новую базу данных и настройте TRASSIR для работы с новой базой.