Skip to content

Синхронизация журнала платформы с другими плагинами баз данных - Справка FineReport | Разработка отчетов | Использование отчетов | Учебные пособия

Плагин для синхронизации журналов платформы с другими базами данных

1. Обзор

1.1 Версия

Версия FineBIПлагин для синхронизации журналов платформы с другими базами данных
6.0V1.0.0

1.2 Сценарии применения

  • В настоящее время база данных LogDB не поддерживает миграцию, пользователи, которые хотят регистрировать данные для какого-то сложного анализа, более хлопотны, надеются, что данные журнала могут быть перенесены в их собственную базу данных для управления и анализа.
  • Пользователи хотят хранить журналы каждой системы в одном месте для обслуживания и ремонта.

1.3 Функциональный профиль

После установки плагина "Синхронизация журналов платформы с другими базами данных" пользователи могут задать настройки для регулярной синхронизации части данных таблиц в LogDB с другими базами данных.

2. Знакомство с плагином

2.1 Установка плагинов

Загрузить плагин можно здесь: Platform Log Synchronisation to Other Databases Plugin

Метод установки плагина см. в разделе: Управление плагинами

2.2 Поддержка баз данных, перенесенных на

Тип базы данныхПоддерживаемые версии баз данных
MySQL5.1.73, 5.5.31, 5.5.46, 5.5.56, 5.6.22, 5.6.31, 5.7.16
SqlServer2000, 2005, 2008, 2012, 2014, 2016
Oracle10g, 11g, 12c

2.3 Синхронизация журналов

После успешной установки плагина нажмите "System Management > Интеллектуальная эксплуатация и обслуживание > Журнал платформы", и в интерфейсе журнала платформы появится новая вкладка "Синхронизация журнала", как показано на следующем рисунке:

14.png

3. Примеры

3.1 Выбор журналов для синхронизации

1) Войдите в систему Data Decision System в качестве администратора, нажмите "Management System > Intelligent Operation and Maintenance > Platform Logs", а затем нажмите "Set Log Synchronisation Tasks" на странице вкладок "Log Synchronisation", как показано на следующем рисунке:

14.png

2) В разделе "Настройки синхронизации журналов" выберите "Время начала синхронизации журналов", отметьте журналы, которые необходимо синхронизировать, и нажмите "Далее". Как показано на рисунке ниже:

Таблицы журналов, поддерживающие синхронизацию, включают:

  • Журнал выполнения отчета fine_record_execute
  • Журнал регистрации входа fine_record_login
  • Выход из системы fine_record_logout
  • Журнал доставки электронной почты fine_record_email
  • Заполнить журнал fine_record_write
  • Общие комбинации параметров fine_record_param
  • Журнал доставки SMS fine_record_sms
  • Управление поведенческими журналами fine_record_operate
  • Выполнение SQL fine_record_sql
  • Приложение в режиме реального времени fine_real_time_usage
  • журнал gc fine_record_gc
  • conf_entity Информация о конфигурации fine_record_conf
  • Журнал блокировки пользователя fine_record_lock
  • Свойства шаблона fine_tpl_info
  • Журнал информации о контейнере fine_container_entity
  • Журнал информации о функциональных точках fine_function_process
  • Журнал операций облачных операционных систем fine_operation_process_log
  • Информация о сигнализации fine_operation_shutdown_record
  • Запись информации об использовании плагина fine_plugin_usage
  • Журнал выполнения заданий по расписанию fine_schedule_record
  • Использование функции fine_intelli_focus_point
  • Журнал информации о производительности fine_intelli_consume_point

3.2 Настройка информации о базе данных

Заполните информацию о базе данных, в которую будут перенесены данные журнала, и нажмите OK, как показано на следующем рисунке:

1598239612331686.png

4. просмотр результатов

4.1 Синхронизация

Примечание: Плагин синхронизирует данные каждые 3 минуты, при этом на одну таблицу может приходиться не более 3 Вт данных за раз. Если количество синхронизируемых данных меньше 3 Вт, то данные будут синхронизироваться не более 24 часов.

Например, 2021-08-02 13:00:00~16:00:00, есть 30 частей данных, тогда эта синхронизация будет синхронизировать максимум эти 30 частей данных.

После успешной синхронизации состояние синхронизации показано на следующем рисунке:

15.png

4.1.1 Уведомление администратора о сбое синхронизации

Если отметить кнопку "Уведомлять администратора при сбое синхронизации", администратор получит сообщение платформы при сбое синхронизации. Как показано на рисунке ниже:

1598250793260794.png

4.1.2 Синхронизация с паузой

Синхронизацию можно приостановить, нажав кнопку "Пауза". Как показано на рисунке ниже:

16.png

4.1.3 Редактирование настроек синхронизации

Если вы приостановили синхронизацию или синхронизация завершилась неудачно, вы можете нажать кнопку "Редактировать", чтобы заново отредактировать задачу синхронизации. Как показано на рисунке ниже:

23.png

В этом разделе описано, как установить "Время начала эффективной цели":

Если вы хотите, чтобы все проверенные таблицы синхронизировались с "Времени начала синхронизированного журнала", установленного пользователем, установите для параметра "Эффективное время начала объекта" значение "Все синхронизированные журналы";

Если вы хотите, чтобы только вновь добавленные таблицы синхронизировались с параметра "Время начала журнала синхронизации", а остальные уже синхронизированные таблицы продолжали синхронизироваться с того места, где они были синхронизированы ранее, установите для параметра "Объект действительности времени начала" значение "Действителен только для журнала текущего изменения".

4.1.4 Просмотр сведений о синхронизации

Нажмите кнопку "Просмотр сведений о синхронизации", чтобы просмотреть сведения о синхронизации. Как показано на рисунке ниже:

17.png

Отображается только состояние выполнения последнего задания синхронизации. Описание полей приведено в следующей таблице:

имя поляинструкции
таблица синхронизацииВыбранный журнал синхронизации
Журнал синхронизации Крайний срокПоследнее время, когда журналы были сохранены в последнем завершенном задании синхронизации, указывающее на то, что журналы были сохранены между "Временем начала синхронизации журналов" и этим моментом времени
Время последней синхронизацииВремя начала последнего выполнения задачи синхронизации в конце выполнения
Последний синхронизированный объем данныхКоличество записей журнала, синхронизированных при последнем выполнении задачи end-of-sync
Время последней синхронизацииИстекшее время последнего выполнения задачи завершения синхронизации
результат работыУспех/неудачаЕсли результат "Не удалось", вы можете щелкнуть, чтобы просмотреть отчет о конкретной ошибке.

4.2 Синхронизация журнальных данных с базой данных

Данные журнала синхронизируются с базой данных настроек. Это показано на следующем рисунке:

Примечание 1: Чрезмерно длинное содержимое поля может быть сохранено, но все, что превышает 255 символов, будет обрезано.

Примечание 2: Очистка журнала не влияет на данные журнала, которые были перенесены во внешнюю базу данных.

1599186812201709.png

После синхронизации таблица имеет новый саморастущий первичный ключ (syncID) и поле метки времени синхронизации (storageTime), как показано в примере ниже:

1599185951990922.png

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

метр (измеряющий что-л.)Оригинальное название поляНазвания полей после миграции
FINE_RECORD_OPERATEтипoperateType
ресурсoperateResource
статусрабочее состояние
FINE_RECORD_EXECUTEтипexecuteType
sqlзапрос
sqlTimequeryTime
FINE_RECORD_WRITEsqlзапрос
sqlTimequeryTime

5. часто задаваемые вопросы

5.1 Логика синхронизации

элементинструкции
синхронная логикаВ настоящее время логика синхронизации журналов платформы представляет собой фиксацию вставки, и несколько синхронизаций одного и того же периода времени приведут к дублированию фиксаций.
частота синхронизацииПлагин синхронизации будет запускаться с заданного пользователем времени начала синхронизации и синхронизировать журналы со сторонней базой данных партиями в хронологическом порядке. Плагин будет синхронизировать журналы раз в 3 минуты, с максимальным количеством записей в таблице 3W за одну синхронизацию.Если в этой синхронизации менее 3 Вт записей, то будет синхронизировано максимум 24 часа данных (максимум 3 часа данных будет синхронизировано до 2021-3-23).
Длина поля синхронизацииСлишком длинные поля можно вводить, но все, что длиннее 255 символов, будет обрезано, и будет отправлено только содержимое в пределах 255 символов.
синхронизацияСтатус синхронизации, отображаемый в плагине, на самом деле относится к статусу работы плагина, а не к статусу синхронизации.

5.2 Проблемы с базой данных

Синхронизация не удается, устраните следующие проблемы с базой данных.

этап проверкиуточнение
Проверка версии базы данныхПоддерживаемые типы и версии баз данных см. в разделе 2.2.
Проверка информации о базе данныхПроверьте правильность драйвера базы данных, схемы и пароля, сначала можно попробовать подключиться к данным, чтобы убедиться, что соединение работает нормально.Перезапуск базы данных приводит к прерыванию синхронизации журналов, и задачу необходимо перезапустить на платформе после завершения синхронизации.
Проверка разрешений пользователей базы данныхУбедитесь, что пользователь базы данных имеет право создавать таблицы и вставлять данные.В идеале пользователи должны иметь права на создание, удаление, изменение, обновление, выбор, вставку.
Проверка кодирования базы данныхКодировка базы данных MySQL5 рекомендуется utf8, кодировка utf8mb4 не поддерживается.Если это AliCloud rds mysql, вам также нужно проверить, является ли движок innodb.

5.3 Проблемы с плагинами

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

Описание проблемы:

1) Дублирующиеся пакеты плагинов отображаются как ошибки в журнале fanruan.log

(2) Интерфейс синхронизации журнала платформы отображается пустым

(3) Отображение интерфейса синхронизации журнала платформы на английском языке

этап проверкиуточнение
Проверьте установку плагинаПроверка на наличие дублирующихся установок плагиновЕсли вы переустановили его, удалите плагин, перезапустите сервер и установите плагин заново.
Проверка порта вебсокетаПроверьте, нормально ли работает порт веб-сокета, см. раздел: Сбой подключения к веб-сокету

5.4 Распространенные ошибки

Если возникла проблема с синхронизацией, вы можете проверить fanruan.log, сообщение об ошибке содержит "com.fr.plugin.sync", вы можете найти проблему в соответствии с сообщением об ошибке.

Сообщение об ошибке (вычисления)Анализ причин и их устранение
SyncLog: getConfigInstance failed!, повторите попытку getConfigInstance!java.lang.AssertionError: com.fr .plugin.sync.config.status.IsStart имеет одинаковое имя таблицы (TableName) с com.fr .plugin.sync.config.status.IsStart1) Установлена другая версия плагина синхронизации журналов платформы, необходимо удалить файл плагина в plugins, перезагрузить сервер и установить его снова.(2) Если вы установили и плагин "Синхронизация данных журнала", и плагин "Синхронизация журнала платформы с другими базами данных", вам необходимо удалить старую версию плагина "Синхронизация данных журнала".
Не удается установить int-поле com.fr .plugin.sync.db.entity.Schedule.logType в java.lang.logDB не поддерживает тип int, необходимо изменить int на long. обновите плагин до версии 1.1.2 и выше.
SyncLog: не удалось получить журналы из XXXСинхронизированная таблица XXX слишком велика, и swift прерывает запрос, что приводит к его неудаче.Плагин синхронизации журналов платформы не может поддерживать синхронизацию журналов для особенно больших объемов данных, поэтому рекомендуется правильно очищать данные таблиц перед синхронизацией.
SyncLog: синхронизация не удалась: com.fr.third.org.hibernate.StaleStateException. Пакетное обновление вернуло неожиданное количество строк из обновления [0]; фактическое количество строк: 0; ожидаемое: 1.Случайный сбой сохранения данных при использовании hibernate. Обновите плагин до версии 1.0.8 и выше.
java.sql.SQLException: Неверное строковое значение: '/xE4/xB8/xB4/xE6/x97/xB6... ' для столбца 'userrole' в строке 1Существует проблема с набором символов в базе данных или таблице.Кодировка базы данных MySQL5 рекомендуется utf8, кодировка utf8mb4 не поддерживается.Если это AliCloud rds mysql, вам также нужно проверить, является ли движок innodb.
QueryTimeoutException - не удалось извлечь ResultSetВ базе данных могут быть незавершенные транзакции, которые приводят к сбою фиксации данных.Проверьте, есть ли незафиксированные транзакции, если да, обработайте их и повторите попытку синхронизации.
не удалось выполнить операторПроверьте схему базы данных и тип кодировки Кодировка базы данных MySQL5 рекомендуется utf8, кодировка utf8mb4 не поддерживается. Если это AliCloud rds mysql, то также необходимо проверить, является ли движок innodb. Oracle схема заполнить в тонкой сообщит об ошибке, будет изменен на имя пользователя может быть.