Стартовая страница › Форумы › Ошибки в работе › Ошибки Сервера › Проблемы с модулем экспорта в БД
- В этой теме 27 ответов, 4 участника, последнее обновление 6 лет, 11 месяцев назад сделано Romiros.
-
АвторСообщения
-
26.04.2017 в 18:36 #5575kustarУчастник
Михаил, добрый день!
Продолжу в новой ветке.
Поставил 5.1.1.
SCADA сервер и IIS — на одной машине, коммуникатор — на удаленной.
Коммуникатор читает ОРС, отправляет 43 тега. Только телеизмерения, событий нет.
Периодичность отправки с коммуникатора — по умолчанию.
Для чистоты эксперимента таблицу cnldata дропнул, скриптом сотворил заново. Проверил — записей не было.
Перезагрузил сервер с модулем в 19:55.2017-04-26 19:55:06 Запуск работы модуля ModDBExport
2017-04-26 19:55:18 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-301’ for key ‘PRIMARY’
2017-04-26 19:55:19 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-304’ for key ‘PRIMARY’
2017-04-26 19:55:20 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-306’ for key ‘PRIMARY’
2017-04-26 19:55:22 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-301’ for key ‘PRIMARY’
2017-04-26 19:55:23 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-304’ for key ‘PRIMARY’
2017-04-26 19:55:25 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-306’ for key ‘PRIMARY’
2017-04-26 19:55:26 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-301’ for key ‘PRIMARY’
2017-04-26 19:55:28 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:23-312’ for key ‘PRIMARY’
2017-04-26 19:55:30 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-304’ for key ‘PRIMARY’
2017-04-26 19:55:31 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-306’ for key ‘PRIMARY’
2017-04-26 19:55:33 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:25-353’ for key ‘PRIMARY’
2017-04-26 19:55:34 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:26-311’ for key ‘PRIMARY’
2017-04-26 19:55:35 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-301’ for key ‘PRIMARY’
2017-04-26 19:55:37 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:28-311’ for key ‘PRIMARY’
2017-04-26 19:55:38 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:23-305’ for key ‘PRIMARY’
2017-04-26 19:55:40 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:29-312’ for key ‘PRIMARY’
2017-04-26 19:55:41 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-304’ for key ‘PRIMARY’
2017-04-26 19:55:43 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-306’ for key ‘PRIMARY’
2017-04-26 19:55:45 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:25-302’ for key ‘PRIMARY’
2017-04-26 19:55:46 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:33-305’ for key ‘PRIMARY’
2017-04-26 19:55:47 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:26-305’ for key ‘PRIMARY’
2017-04-26 19:55:49 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:35-383’ for key ‘PRIMARY’
2017-04-26 19:55:50 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-301’ for key ‘PRIMARY’
2017-04-26 19:55:52 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:28-302’ for key ‘PRIMARY’
2017-04-26 19:55:54 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:23-305’ for key ‘PRIMARY’
2017-04-26 19:55:55 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:39-305’ for key ‘PRIMARY’
2017-04-26 19:55:56 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:29-307’ for key ‘PRIMARY’
2017-04-26 19:55:58 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-304’ for key ‘PRIMARY’
2017-04-26 19:56:00 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:42-308’ for key ‘PRIMARY’
2017-04-26 19:56:01 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:42-310’ for key ‘PRIMARY’
2017-04-26 19:56:03 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-306’ for key ‘PRIMARY’
2017-04-26 19:56:04 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:44-311’ for key ‘PRIMARY’
2017-04-26 19:56:05 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:25-302’ for key ‘PRIMARY’
2017-04-26 19:56:07 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:45-315’ for key ‘PRIMARY’
2017-04-26 19:56:08 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:33-305’ for key ‘PRIMARY’
2017-04-26 19:56:10 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:47-311’ for key ‘PRIMARY’
2017-04-26 19:56:11 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:26-305’ for key ‘PRIMARY’
2017-04-26 19:56:13 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:35-302’ for key ‘PRIMARY’
2017-04-26 19:56:14 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-301’ for key ‘PRIMARY’
2017-04-26 19:56:15 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:51-308’ for key ‘PRIMARY’
2017-04-26 19:56:17 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:28-302’ for key ‘PRIMARY’
2017-04-26 19:56:19 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:54-308’ for key ‘PRIMARY’
2017-04-26 19:56:20 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:23-305’ for key ‘PRIMARY’
2017-04-26 19:56:22 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:39-304’ for key ‘PRIMARY’
2017-04-26 19:56:23 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:29-307’ for key ‘PRIMARY’
2017-04-26 19:56:25 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:57-303’ for key ‘PRIMARY’
2017-04-26 19:56:26 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:57-301’ for key ‘PRIMARY’
2017-04-26 19:56:27 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:57-302’ for key ‘PRIMARY’
2017-04-26 19:56:28 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-304’ for key ‘PRIMARY’
2017-04-26 19:56:30 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:59-358’ for key ‘PRIMARY’
2017-04-26 19:56:31 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:42-304’ for key ‘PRIMARY’
2017-04-26 19:56:33 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:42-310’ for key ‘PRIMARY’
2017-04-26 19:56:34 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:56:02-311’ for key ‘PRIMARY’
2017-04-26 19:56:36 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-306’ for key ‘PRIMARY’
2017-04-26 19:56:37 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:44-302’ for key ‘PRIMARY’
2017-04-26 19:56:39 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:56:05-309’ for key ‘PRIMARY’
2017-04-26 19:56:40 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:25-302’ for key ‘PRIMARY’
2017-04-26 19:56:42 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:45-305’ for key ‘PRIMARY’
2017-04-26 19:56:44 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:33-305’ for key ‘PRIMARY’
2017-04-26 19:56:45 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:56:09-302’ for key ‘PRIMARY’
2017-04-26 19:56:47 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:47-302’ for key ‘PRIMARY’
2017-04-26 19:56:48 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:26-305’ for key ‘PRIMARY’
2017-04-26 19:56:50 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:35-302’ for key ‘PRIMARY’
2017-04-26 19:56:52 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:56:14-353’ for key ‘PRIMARY’
2017-04-26 19:56:54 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-301’ for key ‘PRIMARY’
2017-04-26 19:56:54 Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
2017-04-26 19:56:55 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:51-305’ for key ‘PRIMARY’
2017-04-26 19:56:56 Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
2017-04-26 19:56:56 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:56:16-302’ for key ‘PRIMARY’
2017-04-26 19:56:57 Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
2017-04-26 19:56:57 Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
2017-04-26 19:56:58 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:28-302’ for key ‘PRIMARY’
2017-04-26 19:57:00 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:54-304’ for key ‘PRIMARY’
2017-04-26 19:57:02 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:23-305’ for key ‘PRIMARY’
2017-04-26 19:57:02 Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
2017-04-26 19:57:04 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:39-304’ for key ‘PRIMARY’
2017-04-26 19:57:06 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:29-307’ for key ‘PRIMARY’
2017-04-26 19:57:07 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:56:24-353’ for key ‘PRIMARY’
2017-04-26 19:57:08 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:57-301’ for key ‘PRIMARY’
2017-04-26 19:57:10 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:57-301’ for key ‘PRIMARY’
2017-04-26 19:57:11 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:57-302’ for key ‘PRIMARY’
2017-04-26 19:57:12 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:56:27-309’ for key ‘PRIMARY’
2017-04-26 19:57:12 Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
2017-04-26 19:57:13 Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
2017-04-26 19:57:14 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:56:28-311’ for key ‘PRIMARY’
2017-04-26 19:57:15 Ошибка при экспорте текущих данных в БД MySQL — localhost: Duplicate entry ‘2017-04-26 19:55:17-304’ for key ‘PRIMARY’
2017-04-26 19:57:15 Невозможно добавить в очередь текущие данные. Максимальный размер очереди 100 превышен
2017-04-26 19:57:16 Работа модуля ModDBExport завершена
———————————————————————————Остановил (выгрузил модуль) в 19:57. Сообщения о дублях появились сразу же после старта. Очередь переполнилась за 2 мин.
Первые дубли появились, когда еще и очереди-то еще не было! Вот что странно!
Входные каналы проверил — привязаны к тегам одного КП.27.04.2017 в 06:38 #5577kustarУчастникINSERT IGNORE INTO cnldata (datetime, cnlnum, val, stat)
VALUES (@dateTime, @cnlNum, @val, @stat)В таком варианте все красиво. В логах — тишина. В таблице повторов нет. Очереди тоже нет. Записи раз в секунду.
27.04.2017 в 10:34 #5582kustarУчастникПерезагружал сервер по питанию. Не намеренно, по необходимости.
SCADA сервер с модулем поднялись раньше MySQL. Очередь сразу выросла до 100, стала уменьшаться только через 5 мин. Видимо, столько понадобилось на подъем MySQL и коннект модуля с ним. В результате 154 записи потеряны.
Очередь с 100 до 0 уменьшалась в течение 10 мин., параллельно шла запись в таблицу. Дальше все ровно.
Понятно, нет смысла складывать ежесекундные данные.
А кстати, минутные и часовые этим же модулем вытащить можно? Или нужно самому отсчитывать?27.04.2017 в 16:29 #5615MikhailМодераторЕсли модуль не может вставить какую-либо запись в БД, то она не удаляется из очереди и ошибка возникает и сохраняется до перезапуска сервера, что конечно неудобно и желательно в будущем исправить.
Полагаю, что у Вас какая-то особенность в конфигурации, которая приводит к дублированию. Чтобы её найти, нужно подключаться удалённо и смотреть всё детально — это уже платная услуга. Иначе бы никто не смог пользоваться модулем, а это не так.
По поводу минутных и часовых данных. Всё зависит от той структуры БД, которую Вам удобно иметь для решения Вашей задачи. Под неё нужно писать соответствующие SQL скрипты. В каждом случае нужно что-то своё, можно сделать что угодно.
5 минут вероятно ушли на восстановление сетевого соединения. Оно не сразу восстанавливается.
27.04.2017 в 18:18 #5623kustarУчастникНе стоит так глубоко ковыряться! IGNORE работает, за 2,5 часа работы модуля в таблице ок 500 тыс записей. Без ошибок. Очередь модуля — одна-две записи, и то изредка. Записи таблицы повытаскивал на графики — все красиво!
Кстати, где почитать про значения статуса?
Со скриптами поколдую сам. Думал, может есть готовые переменные (минутные и часовые).
Спасибо!
Андрей.27.04.2017 в 21:05 #5624manjey73УчастникВ Справочниках есть БД Типы событий, можно создавать кроме системных Статусов свои.
Так же можно использовать в формулах. Ну и как вариант лишние отсекать запросами (не пробовал).28.04.2017 в 17:19 #5635MikhailМодераторЗаписи таблицы повытаскивал на графики — все красиво!
Присылайте ссылки на скриншоты, если не секрет.
28.04.2017 в 17:20 #5636MikhailМодераторВозможно, при накоплении большого количества записей проявятся проблемы с производительностью СУБД. Нужно попробовать партицирование по суткам в этом случае.
29.04.2017 в 09:41 #5644kustarУчастникПрисылайте ссылки на скриншоты, если не секрет.
Не секрет, конечно! Рисовал в екселе, данные вытаскивал через ODBC. Посмотрел, остался доволен и ничего не сохранил. Настрою базу — выложу картинки.Модуль экспорта не видит дорасчетных каналов. В частности, «Дорасчетный ТИ» и «Минутный ТИ». На картинке (схеме) показать могу, а в базу — нет.
И еще вопрос: как в базу вытаскивать только определенные каналы, не все скопом?
Прошу извинить, опыта работы с SQL нет, только учусь.29.04.2017 в 14:18 #5645kustarУчастникЕще вопрос: есть ли у сервера счетчик полученных измерений и как его прочитать?
Можно было бы вычислять среднее, например, за минуту и вычисленное значение сохранять в DB.29.04.2017 в 14:20 #5646kustarУчастникИ, кстати, как работает усреднение входных каналов?
01.05.2017 в 13:22 #5647kustarУчастникТак выглядит диаграмма в Excel.
График изменения плотности нефти за 5 часов.
В базу (MySQL) данные записываются с секундным интервалом.
Коммуникатор юзает OPC .dll, потому временные параметры не настраиваются.
Как объяснял Михаил (где-то в другой ветке на этом форуме), данные поступают тогда, когда того желает ОРС сервер.
Дальше через ODBC коннектор — в Excel. Все стандартными средствами.http://postimg.org/image/l3kcgx5dx/
Секундные данные в базе — это, конечно, излишество. Поэтому все вопросы выше актуальны.
02.05.2017 в 11:03 #5651MikhailМодераторСпасибо за скриншоты!
Модуль экспорта не видит дорасчетных каналов. В частности, «Дорасчетный ТИ» и «Минутный ТИ». На картинке (схеме) показать могу, а в базу — нет.
Модуль экспорта видит только то, что напрямую приходит от Коммуникатора. Наверное, можно его как-то усовершенствовать, чтобы передавались дорасчётные каналы, но это уже другая история.
И еще вопрос: как в базу вытаскивать только определенные каналы, не все скопом?
Использовать для экспорта не примитивные скрипты, а создать хранимые процедуры, где проверять номера каналов. Либо дорабатывать модуль экспорта, чтобы это делал он ))
Наверное, можно что-то типа
INSERT INTO
SELECT FROM WHERE- Этот ответ был изменен 6 лет, 11 месяцев назад от Mikhail.
02.05.2017 в 11:06 #5653MikhailМодераторПо вопросам счётчиков и средних просьба завести отдельные темы.
02.05.2017 в 17:03 #5660kustarУчастникНашел объяснение для Duplicate entry ‘2017-04-26 19:55:29-307’ for key ‘PRIMARY’
2017-04-26 19:57:07 Ошибка при экспорте текущих данных в БД MySQL —
Коммуникатор иногда (и довольно часто) успевает дважды отправить данные за одну секунду. Вторая запись 307 -го канала с таким же datetime не проходит.
Так что, IGNORE оказался полезной штюкой. -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.