Оформление
Синхронизация журнала платформы с другими плагинами баз данных - Справка FineReport | Разработка отчетов | Использование отчетов | Учебные пособия
Плагин для синхронизации журналов платформы с другими базами данных
1. Обзор
1.1 Версия
| Версия FineBI | Плагин для синхронизации журналов платформы с другими базами данных |
|---|---|
| 6.0 | V1.0.0 |
1.2 Сценарии применения
- В настоящее время база данных LogDB не поддерживает миграцию, пользователи, которые хотят регистрировать данные для какого-то сложного анализа, более хлопотны, надеются, что данные журнала могут быть перенесены в их собственную базу данных для управления и анализа.
- Пользователи хотят хранить журналы каждой системы в одном месте для обслуживания и ремонта.
1.3 Функциональный профиль
После установки плагина "Синхронизация журналов платформы с другими базами данных" пользователи могут задать настройки для регулярной синхронизации части данных таблиц в LogDB с другими базами данных.
2. Знакомство с плагином
2.1 Установка плагинов
Загрузить плагин можно здесь: Platform Log Synchronisation to Other Databases Plugin
Метод установки плагина см. в разделе: Управление плагинами
2.2 Поддержка баз данных, перенесенных на
| Тип базы данных | Поддерживаемые версии баз данных |
|---|---|
| MySQL | 5.1.73, 5.5.31, 5.5.46, 5.5.56, 5.6.22, 5.6.31, 5.7.16 |
| SqlServer | 2000, 2005, 2008, 2012, 2014, 2016 |
| Oracle | 10g, 11g, 12c |
2.3 Синхронизация журналов
После успешной установки плагина нажмите "System Management > Интеллектуальная эксплуатация и обслуживание > Журнал платформы", и в интерфейсе журнала платформы появится новая вкладка "Синхронизация журнала", как показано на следующем рисунке:

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

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, как показано на следующем рисунке:

4. просмотр результатов
4.1 Синхронизация
Примечание: Плагин синхронизирует данные каждые 3 минуты, при этом на одну таблицу может приходиться не более 3 Вт данных за раз. Если количество синхронизируемых данных меньше 3 Вт, то данные будут синхронизироваться не более 24 часов.
Например, 2021-08-02 13:00:00~16:00:00, есть 30 частей данных, тогда эта синхронизация будет синхронизировать максимум эти 30 частей данных.
После успешной синхронизации состояние синхронизации показано на следующем рисунке:

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

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

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

В этом разделе описано, как установить "Время начала эффективной цели":
Если вы хотите, чтобы все проверенные таблицы синхронизировались с "Времени начала синхронизированного журнала", установленного пользователем, установите для параметра "Эффективное время начала объекта" значение "Все синхронизированные журналы";
Если вы хотите, чтобы только вновь добавленные таблицы синхронизировались с параметра "Время начала журнала синхронизации", а остальные уже синхронизированные таблицы продолжали синхронизироваться с того места, где они были синхронизированы ранее, установите для параметра "Объект действительности времени начала" значение "Действителен только для журнала текущего изменения".
4.1.4 Просмотр сведений о синхронизации
Нажмите кнопку "Просмотр сведений о синхронизации", чтобы просмотреть сведения о синхронизации. Как показано на рисунке ниже:

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

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

Если в имени поля используется зарезервированное имя базы данных, для совместимости с каждой версией выполняется псевдоним зарезервированного имени. Конкретные поля, которые переименовываются, показаны в следующей таблице:
| метр (измеряющий что-л.) | Оригинальное название поля | Названия полей после миграции |
|---|---|---|
| FINE_RECORD_OPERATE | тип | operateType |
| ресурс | operateResource | |
| статус | рабочее состояние | |
| FINE_RECORD_EXECUTE | тип | executeType |
| sql | запрос | |
| sqlTime | queryTime | |
| FINE_RECORD_WRITE | sql | запрос |
| sqlTime | queryTime |
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.IsStart | 1) Установлена другая версия плагина синхронизации журналов платформы, необходимо удалить файл плагина в 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 схема заполнить в тонкой сообщит об ошибке, будет изменен на имя пользователя может быть. |